Sponsored Link:   Ambrosus Main-Net Launching: Stake AMB in Masternodes and get regular rewards for maintaining network integrity.
 Latest 25 txns from a total Of 4618 transactions

TxHash Age From To Value [TxFee]
0x17c3b4b04dfa2561f8a68fabd3de7706b8e5df630bad9501e7dc1b6c15564899122 days 13 hrs ago0x3d4247b9295ddb3abefeaa2265dcf8365a0e730b  IN   StormTokenCrowdsale0.0001 Ether0.00134365
0xffa86bbed5d8c6fde0f068dd9f6b8e0036f0fd971fae692cc3247eb4cdc042b4174 days 6 hrs ago0x00fa5d95dca1901fcdd2506c994c321deeafb107  IN   StormTokenCrowdsale0.000051 Ether0.0000134365
0x52b4f1918fae7c19ba9fc75117186dd6b2b9284b3b6e0090b39e39052c3fee5e174 days 6 hrs ago0x00fa5d95dca1901fcdd2506c994c321deeafb107  IN   StormTokenCrowdsale0.0001 Ether0.000021
0xbe993adde80b137bb902526dab805c1c1ab3fe3d787568a1608f4045d33490bb189 days 16 hrs ago0x31b0796474dae819d8c69ce31c7f54338c9db024  IN   StormTokenCrowdsale0 Ether0.00161388
0x684798d813287964b943bd340668cec2f98f609c56c4e8b0970c1479b40a102c192 days 4 hrs ago0x4055693132015e4870eed7ffec0b5f0721ebdc20  IN   StormTokenCrowdsale0.004 Ether0.000725
0xa50a813e9949ce55596f97237430266e028d5d6687a07142ef30c1236fb5c551192 days 8 hrs ago0x4055693132015e4870eed7ffec0b5f0721ebdc20  IN   StormTokenCrowdsale0.00519768 Ether0.000725
0xfece9d02ce23a4a00655d37ee7e1f266c7f8c784ea6d547e66ed885528beccdc196 days 6 hrs ago0xfe5316f57156b088123468a30e9f514e7427dc88  IN   StormTokenCrowdsale0.00004 Ether0.00107492
0x4a2ccd1471a38a487112acd3fd75dbc290b55ebae5bc85bc30e41e41ea1b7698206 days 14 hrs ago0xb76743a5a7fc2d37d8ec00a785ce39f3394128e0  IN   StormTokenCrowdsale0.01477353 Ether0.0000021
0x56d082f016cf322b5cc36715e9ec5905d112f0079465360f4e94cd23d5a9f8a9219 days 5 mins ago0x2766d3d688a27fd3386249bc8598f0e076eab4e2  IN   StormTokenCrowdsale0.99 Ether0.0025
0xd5582ff7374992dfa98a72043f2488c757d4fcae97c079285ae503d77e452189219 days 7 mins ago0x4cc5954c81b0fedcd8925898b727af7f35b29759  IN   StormTokenCrowdsale0.99 Ether0.0025
0x110401c8d7613a266dc3ee1b0475f4e2d4c0ef5b60f8377b0aad4853c5f262ea219 days 34 mins ago0xab90acbe0585d642c9522e6a7ab39e1e74cdc5ae  IN   StormTokenCrowdsale0.00545508 Ether0.00026873
0xb7ea3ea6cf438396965bc26703a2a8ebe8b14f7321768ec6acf9660d44041fef219 days 48 mins ago0xc85f8ef202ef169a8d1453d2459d1346a63831cc  IN   StormTokenCrowdsale0.00277 Ether0.0015
0x79a137611a6b2f3d7d5382f4330bd3347c61cc4eb56c2095f365521733529638219 days 52 mins ago0x3d79366b5d1375ed6854344ae7cec9131b01d09c  IN   StormTokenCrowdsale1 Ether0.0025
0xc3cf0ee06debac90977a35f6d95022c16d51f4f1fd4b557227bd4a21cad591b8219 days 1 hr ago0x767198bc3dc03ee599994ed4f1732954c1d9a7e2  IN   StormTokenCrowdsale0.175 Ether0.0025
0xed844b8d81523539dde4194cf815e881eba231468f34f227f395b639cf8762b0219 days 1 hr ago0x3c10f77d2a6db2548dba897db8669cc22b0848f8  IN   StormTokenCrowdsale0.547803211020849 Ether0.00026873
0x264530edcaf91836f0183d1a8de76dba8b2c1750cca53cf83fe5219d6192df58219 days 1 hr ago0x6d2ff5655d4af0ddb9179f9df57fb2d9a1789ddc  IN   StormTokenCrowdsale0.22 Ether0.00025
0xde38b4bc9f0debe9950b1ebf56c2934486083f3aede8b5527d9f0efd857a1709219 days 4 hrs ago0x5da0f2bc90c6ec5f7b5b18cd1090ab7e2c138215  IN   StormTokenCrowdsale1 Ether0.000295603
0x7f02424e8515d4b627523e6c63f587a9812f912cf1756fc7ea46c6529f059f01219 days 9 hrs ago0x1f6db008c020bea814c7967612aae0f42b5932e1  IN   StormTokenCrowdsale0.0275 Ether0.0025
0xb47006b98c6c34cb285ce5926cfda185d10477e773387f99e3bba18957d3150c219 days 13 hrs ago0x74a8a9e8ad62db82733ee15c637e71ae74598d6a  IN   StormTokenCrowdsale0.99 Ether0.0025
0xa5a5332f8c54556c78a248d037a9a280d1495eb4597253b46008f8fc1fd3c500219 days 16 hrs ago0xe753910e13ac6e46ed06e995b3a8f1711cac180c  IN   StormTokenCrowdsale4.26 Ether0.00505
0x33ea6a41a906e30b2a2dc8bc2b3a6ee43a51e0f0078978c3a6cba682770939fa219 days 16 hrs ago0x3f3ab4526df8024838901d83f87f616978f50fa9  IN   StormTokenCrowdsale2.1 Ether0.00525
0x3713f67f6a60928801de8e8d3f14c7391b0dc5f04dc147150d133c5ef49d0fa6219 days 16 hrs ago0x6016c0c9236600047eec6ac5a6a126f3f998724f  IN   StormTokenCrowdsale0.16 Ether0.00525
0x6c5092e0342df62cb39feec01b7b8094ae285fd08e7cf3aa8233a8a37f15e0f5219 days 17 hrs ago0xb7a9904e9e5e91ef5f0cb1780383e4900e59ffac  IN   StormTokenCrowdsale0.2 Ether0.00525
0x25f736d4cbf0eff7ffb264ccc03f63f06c2a7a17d9f88572f6d5f09c65953031219 days 17 hrs ago0x56c53d9cdfeba298725ce75686a29a660ace1327  IN   StormTokenCrowdsale2.768369395 Ether0.00525
0x43efad5fe37b144272a68cc44ca2b87ab42aa8688f53e663a9cf724179506f87219 days 17 hrs ago0x1567c901f69f053e1224bc9c8dffff845396b889  IN   StormTokenCrowdsale0.1 Ether0.00525
[ 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
0xdc9989fa2a5a0b6f2202b04100b987d17113f5cad909a48d44a1cba4bfb47a6b4694118221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c341 Ether
0xe173b475a122f242ad1a57d7240ffb194ce41e1214f6369b1f793c1439bc48b34694090221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c342.7 Ether
0xd589af81c1445c111a7b4b437d7041dfe025bfa54557fab4fe13e089d6a4cfea4694090221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c34231 Ether
0x721225775845b696172007ec69b0f7c4244d5a36c590dcd3fbcfe1e8d91dfac14694076221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c341,667 Ether
0xdf01ba39594ff371ce36a6d4b102aff17841063ee8cf8b885071cefe28eb790b4694071221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c3437.11 Ether
0xc257b4c499ee41effe4994a73f04d17f06aef4515d30e96769d49c68da782cab4694057221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c341 Ether
0x997398a9ce2c0b414c2d2137c097020ed07782f1f3e1d699035c746e310ca0334694022221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c3415 Ether
0x404c42d807b1e5e330b1bc1ad9187a76a4d1680fd0f1506d193a92ff8854a3a04694016221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c346 Ether
0xf544c8bede9443c1d4a83b6e6829e4712017aba1f1ed691c9b1fe8f98d526af84693968221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c342 Ether
0xcacca5cc1a787da3c3cdb8c3e832f880889734ff21a10162bf4a2bc2ac594f0d4693966221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c342.45 Ether
0x648abcd2c62d00184b9cfc11124f156b1e9f0a86bdf7a64771989d65fbdb31b44693965221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c342 Ether
0xd89cde1e0be2ed22802e26e7a7304de645185dc6e1508dece93edf7d1f9eae174693962221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c340.10443531 Ether
0xab26434a568453d04a651d44b2e508d477447b57a7caa7ac7c1855da57584a2e4693960221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c344.29274524 Ether
0x7af9680c957d5ae50acf8c7f65a596ffbc311d6fb63a30f513adf07f48a7c7684693946221 days 23 hrs ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c341.24 Ether
0x38bb483c962b0df2db8e9dcb8f92cf47b80df39bda3b01afd23ad0cded690c854693937222 days 2 mins ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c340.5 Ether
0xf79723e87b5fbb12ec84f81f3b1a238184827bad9663824d8904049773235b604693920222 days 7 mins ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c3410 Ether
0x808100ac26381045371174b1d38af836f66382e2f66f62fabe800cb9ffafe85b4693809222 days 39 mins ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c344 Ether
0x4a077d602e1520125d616e63791018def0f8d48a1696275979f2f77ec78c21ed4693809222 days 39 mins ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c3411 Ether
0x10ecd061384afa33fa1879d178edcfe00a2bb8b157cdcfd00e6c909acbcc12814693792222 days 43 mins ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c3414.6 Ether
0x43f74f1a4302af2ea13272e7e49442648604b7b1e5f97217c597b4a4e79149534693759222 days 50 mins ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c341 Ether
0x5b5565743d0a12faba744528ab79da9078fb745aaf564fad155a7726301e46cb4693734222 days 56 mins ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c340.88314687 Ether
0xfd68d536cb022706d17f9f37e12f0d6531129780da893ddcbe7edb5e453b37ad4693731222 days 56 mins ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c342.48 Ether
0x9d606d451b8bbd66f9e08fb0d2c5b735efee6ce08d149c06b5ddea8f1c6655fa4693707222 days 1 hr ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c341.01 Ether
0xfd3ed62fc0ae5437f6c19b7294d07a0d7b75c61fa9394f5607622158662bc1774693648222 days 1 hr ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c341 Ether
0xc4850ca693785666206f691858f65f94843df34e00f941cf91f1176dadd7ed8e4693634222 days 1 hr ago0xc88c7e1aebd89187d13bd42e1ff814d32f492bf60x606b2272215a0cdd1cf4f38293ffaa42f0f56c340.13 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: StormCrowdsale
Compiler Version: v0.4.19-nightly.2017.11.11+commit.284c3839
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.13;
contract IERC20Token {
  function totalSupply() constant returns (uint256 totalSupply);
  function balanceOf(address _owner) constant returns (uint256 balance) {}
  function transfer(address _to, uint256 _value) returns (bool success) {}
  function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {}
  function approve(address _spender, uint256 _value) returns (bool success) {}
  function allowance(address _owner, address _spender) constant returns (uint256 remaining) {}
  event Transfer(address indexed _from, address indexed _to, uint256 _value);
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
contract IToken {
  function totalSupply() constant returns (uint256 totalSupply);
  function mintTokens(address _to, uint256 _amount) {}
}
contract Owned {
    address public owner;
    address public newOwner;
    function Owned() {
        owner = msg.sender;
    }
    modifier onlyOwner {
        assert(msg.sender == owner);
        _;
    }
    function transferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != owner);
        newOwner = _newOwner;
    }
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        OwnerUpdate(owner, newOwner);
        owner = newOwner;
        newOwner = 0x0;
    }
    event OwnerUpdate(address _prevOwner, address _newOwner);
}
contract ReentrancyHandling {
    bool locked;
    modifier noReentrancy() {
        require(!locked);
        locked = true;
        _;
        locked = false;
    }
}
/**
 * @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;
  }
}
contract Crowdsale is ReentrancyHandling, Owned {
  using SafeMath for uint256;
  
  struct ContributorData {
    bool isWhiteListed;
    bool isCommunityRoundApproved;
    uint256 contributionAmount;
    uint256 tokensIssued;
  }
  mapping(address => ContributorData) public contributorList;
  enum state { pendingStart, communityRound, crowdsaleStarted, crowdsaleEnded }
  state crowdsaleState;
  uint public communityRoundStartDate;
  uint public crowdsaleStartDate;
  uint public crowdsaleEndDate;
  event CommunityRoundStarted(uint timestamp);
  event CrowdsaleStarted(uint timestamp);
  event CrowdsaleEnded(uint timestamp);
  IToken token = IToken(0x0);
  uint ethToTokenConversion;
  uint256 maxCrowdsaleCap;
  uint256 maxCommunityCap;
  uint256 maxCommunityWithoutBonusCap;
  uint256 maxContribution;
  uint256 tokenSold = 0;
  uint256 communityTokenSold = 0;
  uint256 communityTokenWithoutBonusSold = 0;
  uint256 crowdsaleTokenSold = 0;
  uint256 public ethRaisedWithoutCompany = 0;
  address companyAddress;   // company wallet address in cold/hardware storage 
  uint maxTokenSupply;
  uint companyTokens;
  bool treasuryLocked = false;
  bool ownerHasClaimedTokens = false;
  bool ownerHasClaimedCompanyTokens = false;
  // validates sender is whitelisted
  modifier onlyWhiteListUser {
    require(contributorList[msg.sender].isWhiteListed == true);
    _;
  }
  // limit gas price to 50 Gwei (about 5-10x the normal amount)
  modifier onlyLowGasPrice {
	  require(tx.gasprice <= 50*10**9 wei);
	  _;
  }
  //
  // Unnamed function that runs when eth is sent to the contract
  //
  function() public noReentrancy onlyWhiteListUser onlyLowGasPrice payable {
    require(msg.value != 0);                                         // Throw if value is 0
    require(companyAddress != 0x0);
    require(token != IToken(0x0));
    checkCrowdsaleState();                                           // Calibrate crowdsale state
    assert((crowdsaleState == state.communityRound && contributorList[msg.sender].isCommunityRoundApproved) ||
            crowdsaleState == state.crowdsaleStarted);
    
    processTransaction(msg.sender, msg.value);                       // Process transaction and issue tokens
    checkCrowdsaleState();                                           // Calibrate crowdsale state
  }
  // 
  // return state of smart contract
  //
  function getState() public constant returns (uint256, uint256, uint) {
    uint currentState = 0;
    if (crowdsaleState == state.pendingStart) {
      currentState = 1;
    }
    else if (crowdsaleState == state.communityRound) {
      currentState = 2;
    }
    else if (crowdsaleState == state.crowdsaleStarted) {
      currentState = 3;
    }
    else if (crowdsaleState == state.crowdsaleEnded) {
      currentState = 4;
    }
    return (tokenSold, communityTokenSold, currentState);
  }
  //
  // Check crowdsale state and calibrate it
  //
  function checkCrowdsaleState() internal {
    if (now > crowdsaleEndDate || tokenSold >= maxTokenSupply) {  // end crowdsale once all tokens are sold or run out of time
      if (crowdsaleState != state.crowdsaleEnded) {
        crowdsaleState = state.crowdsaleEnded;
        CrowdsaleEnded(now);
      }
    }
    else if (now > crowdsaleStartDate) { // move into crowdsale round
      if (crowdsaleState != state.crowdsaleStarted) {
        uint256 communityTokenRemaining = maxCommunityCap.sub(communityTokenSold);  // apply any remaining tokens from community round to crowdsale round
        maxCrowdsaleCap = maxCrowdsaleCap.add(communityTokenRemaining);
        crowdsaleState = state.crowdsaleStarted;  // change state
        CrowdsaleStarted(now);
      }
    }
    else if (now > communityRoundStartDate) {
      if (communityTokenSold < maxCommunityCap) {
        if (crowdsaleState != state.communityRound) {
          crowdsaleState = state.communityRound;
          CommunityRoundStarted(now);
        }
      }
      else {  // automatically start crowdsale when all community round tokens are sold out 
        if (crowdsaleState != state.crowdsaleStarted) {
          crowdsaleState = state.crowdsaleStarted;
          CrowdsaleStarted(now);
        }
      }
    }
  }
  //
  // Issue tokens and return if there is overflow
  //
  function calculateCommunity(address _contributor, uint256 _newContribution) internal returns (uint256, uint256) {
    uint256 communityEthAmount = 0;
    uint256 communityTokenAmount = 0;
    uint previousContribution = contributorList[_contributor].contributionAmount;  // retrieve previous contributions
    // community round ONLY
    if (crowdsaleState == state.communityRound && 
        contributorList[_contributor].isCommunityRoundApproved && 
        previousContribution < maxContribution) {
        communityEthAmount = _newContribution;
        uint256 availableEthAmount = maxContribution.sub(previousContribution);                 
        // limit the contribution ETH amount to the maximum allowed for the community round
        if (communityEthAmount > availableEthAmount) {
          communityEthAmount = availableEthAmount;
        }
        // compute community tokens without bonus
        communityTokenAmount = communityEthAmount.mul(ethToTokenConversion);
        uint256 availableTokenAmount = maxCommunityWithoutBonusCap.sub(communityTokenWithoutBonusSold);
        // verify community tokens do not go over the max cap for community round
        if (communityTokenAmount > availableTokenAmount) {
          // cap the tokens to the max allowed for the community round
          communityTokenAmount = availableTokenAmount;
          // recalculate the corresponding ETH amount
          communityEthAmount = communityTokenAmount.div(ethToTokenConversion);
        }
        // track tokens sold during community round
        communityTokenWithoutBonusSold = communityTokenWithoutBonusSold.add(communityTokenAmount);
        // compute bonus tokens
        uint256 bonusTokenAmount = communityTokenAmount.mul(15);
        bonusTokenAmount = bonusTokenAmount.div(100);
        // add bonus to community tokens
        communityTokenAmount = communityTokenAmount.add(bonusTokenAmount);
        // track tokens sold during community round
        communityTokenSold = communityTokenSold.add(communityTokenAmount);
    }
    return (communityTokenAmount, communityEthAmount);
  }
  //
  // Issue tokens and return if there is overflow
  //
  function calculateCrowdsale(uint256 _remainingContribution) internal returns (uint256, uint256) {
    uint256 crowdsaleEthAmount = _remainingContribution;
    // compute crowdsale tokens
    uint256 crowdsaleTokenAmount = crowdsaleEthAmount.mul(ethToTokenConversion);
    // determine crowdsale tokens remaining
    uint256 availableTokenAmount = maxCrowdsaleCap.sub(crowdsaleTokenSold);
    // verify crowdsale tokens do not go over the max cap for crowdsale round
    if (crowdsaleTokenAmount > availableTokenAmount) {
      // cap the tokens to the max allowed for the crowdsale round
      crowdsaleTokenAmount = availableTokenAmount;
      // recalculate the corresponding ETH amount
      crowdsaleEthAmount = crowdsaleTokenAmount.div(ethToTokenConversion);
    }
    // track tokens sold during crowdsale round
    crowdsaleTokenSold = crowdsaleTokenSold.add(crowdsaleTokenAmount);
    return (crowdsaleTokenAmount, crowdsaleEthAmount);
  }
  //
  // Issue tokens and return if there is overflow
  //
  function processTransaction(address _contributor, uint256 _amount) internal {
    uint256 newContribution = _amount;
    var (communityTokenAmount, communityEthAmount) = calculateCommunity(_contributor, newContribution);
    // compute remaining ETH amount available for purchasing crowdsale tokens
    var (crowdsaleTokenAmount, crowdsaleEthAmount) = calculateCrowdsale(newContribution.sub(communityEthAmount));
    // add up crowdsale + community tokens
    uint256 tokenAmount = crowdsaleTokenAmount.add(communityTokenAmount);
    assert(tokenAmount > 0);
    // Issue new tokens
    token.mintTokens(_contributor, tokenAmount);                              
    // log token issuance
    contributorList[_contributor].tokensIssued = contributorList[_contributor].tokensIssued.add(tokenAmount);                
    // Add contribution amount to existing contributor
    newContribution = crowdsaleEthAmount.add(communityEthAmount);
    contributorList[_contributor].contributionAmount = contributorList[_contributor].contributionAmount.add(newContribution);
    ethRaisedWithoutCompany = ethRaisedWithoutCompany.add(newContribution);                              // Add contribution amount to ETH raised
    tokenSold = tokenSold.add(tokenAmount);                                  // track how many tokens are sold
    // compute any refund if applicable
    uint256 refundAmount = _amount.sub(newContribution);
    if (refundAmount > 0) {
      _contributor.transfer(refundAmount);                                   // refund contributor amount behind the maximum ETH cap
    }
    companyAddress.transfer(newContribution);                                // send ETH to company
  }
  //
  // whitelist validated participants.
  //
  function WhiteListContributors(address[] _contributorAddresses, bool[] _contributorCommunityRoundApproved) public onlyOwner {
    require(_contributorAddresses.length == _contributorCommunityRoundApproved.length); // Check if input data is correct
    for (uint cnt = 0; cnt < _contributorAddresses.length; cnt++) {
      contributorList[_contributorAddresses[cnt]].isWhiteListed = true;
      contributorList[_contributorAddresses[cnt]].isCommunityRoundApproved = _contributorCommunityRoundApproved[cnt];
    }
  }
  //
  // Method is needed for recovering tokens accidentally sent to token address
  //
  function salvageTokensFromContract(address _tokenAddress, address _to, uint _amount) public onlyOwner {
    IERC20Token(_tokenAddress).transfer(_to, _amount);
  }
  //
  // Owner can set multisig address for crowdsale
  //
  function setCompanyAddress(address _newAddress) public onlyOwner {
    require(!treasuryLocked);                              // Check if owner has already claimed tokens
    companyAddress = _newAddress;
    treasuryLocked = true;
  }
  //
  // Owner can set token address where mints will happen
  //
  function setToken(address _newAddress) public onlyOwner {
    token = IToken(_newAddress);
  }
  function getToken() public constant returns (address) {
    return address(token);
  }
  //
  // Claims company tokens
  //
  function claimCompanyTokens() public onlyOwner {
    require(!ownerHasClaimedCompanyTokens);                     // Check if owner has already claimed tokens
    require(companyAddress != 0x0);
    
    tokenSold = tokenSold.add(companyTokens); 
    token.mintTokens(companyAddress, companyTokens);            // Issue company tokens 
    ownerHasClaimedCompanyTokens = true;                        // Block further mints from this method
  }
  //
  // Claim remaining tokens when crowdsale ends
  //
  function claimRemainingTokens() public onlyOwner {
    checkCrowdsaleState();                                        // Calibrate crowdsale state
    require(crowdsaleState == state.crowdsaleEnded);              // Check crowdsale has ended
    require(!ownerHasClaimedTokens);                              // Check if owner has already claimed tokens
    require(companyAddress != 0x0);
    uint256 remainingTokens = maxTokenSupply.sub(token.totalSupply());
    token.mintTokens(companyAddress, remainingTokens);            // Issue tokens to company
    ownerHasClaimedTokens = true;                                 // Block further mints from this method
  }
}
contract StormCrowdsale is Crowdsale {
    string public officialWebsite;
    string public officialFacebook;
    string public officialTelegram;
    string public officialEmail;
  function StormCrowdsale() public {
    officialWebsite = "https://www.stormtoken.com";
    officialFacebook = "https://www.facebook.com/stormtoken/";
    officialTelegram = "https://t.me/joinchat/GHTZGQwsy9mZk0KFEEjGtg";
    officialEmail = "info@stormtoken.com";
    communityRoundStartDate = 1510063200;                       // Nov 7, 2017 @ 6am PST
    crowdsaleStartDate = communityRoundStartDate + 24 hours;    // 24 hours later
    crowdsaleEndDate = communityRoundStartDate + 30 days + 12 hours; // 30 days + 12 hours later: Dec 7th, 2017 @ 6pm PST [1512698400]
    crowdsaleState = state.pendingStart;
    ethToTokenConversion = 26950;                 // 1 ETH == 26,950 STORM tokens
    maxTokenSupply = 10000000000 ether;           // 10,000,000,000
    companyTokens = 8124766171 ether;             // allocation for company pool, private presale, user pool 
                                                  // 2,325,649,071 tokens from the company pool are voluntarily locked for 2 years
    maxCommunityWithoutBonusCap = 945000000 ether;
    maxCommunityCap = 1086750000 ether;           // 945,000,000 with 15% bonus of 141,750,000
    maxCrowdsaleCap = 788483829 ether;            // tokens allocated to crowdsale 
    maxContribution = 100 ether;                  // maximum contribution during community round
  }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"setToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getState","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleEndDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleStartDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"officialEmail","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimRemainingTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"officialFacebook","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"setCompanyAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contributorList","outputs":[{"name":"isWhiteListed","type":"bool"},{"name":"isCommunityRoundApproved","type":"bool"},{"name":"contributionAmount","type":"uint256"},{"name":"tokensIssued","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethRaisedWithoutCompany","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"salvageTokensFromContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"officialTelegram","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimCompanyTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"officialWebsite","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"communityRoundStartDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_contributorAddresses","type":"address[]"},{"name":"_contributorCommunityRoundApproved","type":"bool[]"}],"name":"WhiteListContributors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"CommunityRoundStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"CrowdsaleStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"CrowdsaleEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_prevOwner","type":"address"},{"indexed":false,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260078054600160a060020a03191690556000600d819055600e819055600f81905560108190556011556015805462ffffff1916905534156200004557600080fd5b6000805461010060a860020a03191661010033600160a060020a03160217905560408051908101604052601a81527f68747470733a2f2f7777772e73746f726d746f6b656e2e636f6d00000000000060208201526016908051620000ae9291602001906200026a565b50606060405190810160405280602481526020017f68747470733a2f2f7777772e66616365626f6f6b2e636f6d2f73746f726d746f81526020017f6b656e2f000000000000000000000000000000000000000000000000000000008152506017908051620001219291602001906200026a565b50606060405190810160405280602c81526020017f68747470733a2f2f742e6d652f6a6f696e636861742f4748545a47517773793981526020017f6d5a6b304b4645456a47746700000000000000000000000000000000000000008152506018908051620001949291602001906200026a565b5060408051908101604052601381527f696e666f4073746f726d746f6b656e2e636f6d0000000000000000000000000060208201526019908051620001de9291602001906200026a565b50635a01bc60600455635a030de0600555635a29f2206006556003805460ff191690556169466008556b204fce5e3e250261100000006013556b1a40a628ad3f45122e8c00006014556b030daf88a662792f51000000600b556b0382f0438c2471c336c00000600a556b028c37f204c14b8baab4000060095568056bc75e2d63100000600c556200030f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ad57805160ff1916838001178555620002dd565b82800160010185558215620002dd579182015b82811115620002dd578251825591602001919060010190620002c0565b50620002eb929150620002ef565b5090565b6200030c91905b80821115620002eb5760008155600101620002f6565b90565b611468806200031f6000396000f3006060604052600436106101035763ffffffff60e060020a600035041663144fa6d7811461021a5780631865c57d1461023b578063192f10761461027257806321df0da7146102975780632edcc661146102c65780632fa146d8146102d9578063313602d4146103635780634e58e920146103765780634f63a7721461038957806379ba5097146103a85780638da5cb5b146103bb57806392acb4d6146103ce5780639bf070b51461041b578063a0929cda1461042e578063a10d6a5114610456578063b7e621c314610469578063bf3d99951461047c578063d1baaf581461048f578063d4ee1d90146104a2578063f2fde38b146104b5578063fbbc2243146104d4575b60005460ff161561011357600080fd5b6000805460ff191660019081178255600160a060020a0333168252600260205260409091205460ff1615151461014857600080fd5b640ba43b74003a111561015a57600080fd5b34151561016657600080fd5b601254600160a060020a0316151561017d57600080fd5b600754600160a060020a0316151561019457600080fd5b61019c610563565b60016003805460ff16908111156101af57fe5b1480156101d9575033600160a060020a0316600090815260026020526040902054610100900460ff165b806101f4575060026003805460ff16908111156101f257fe5b145b15156101fc57fe5b610206333461073d565b61020e610563565b6000805460ff19169055005b341561022557600080fd5b610239600160a060020a0360043516610952565b005b341561024657600080fd5b61024e61099e565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561027d57600080fd5b610285610a32565b60405190815260200160405180910390f35b34156102a257600080fd5b6102aa610a38565b604051600160a060020a03909116815260200160405180910390f35b34156102d157600080fd5b610285610a47565b34156102e457600080fd5b6102ec610a4d565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610328578082015183820152602001610310565b50505050905090810190601f1680156103555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036e57600080fd5b610239610aeb565b341561038157600080fd5b6102ec610c53565b341561039457600080fd5b610239600160a060020a0360043516610cbe565b34156103b357600080fd5b610239610d27565b34156103c657600080fd5b6102aa610deb565b34156103d957600080fd5b6103ed600160a060020a0360043516610dff565b6040519315158452911515602084015260408084019190915260608301919091526080909101905180910390f35b341561042657600080fd5b610285610e2d565b341561043957600080fd5b610239600160a060020a0360043581169060243516604435610e33565b341561046157600080fd5b6102ec610ecd565b341561047457600080fd5b610239610f38565b341561048757600080fd5b6102ec611021565b341561049a57600080fd5b61028561108c565b34156104ad57600080fd5b6102aa611092565b34156104c057600080fd5b610239600160a060020a03600435166110a1565b34156104df57600080fd5b61023960046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061110d95505050505050565b60006006544211806105795750601354600d5410155b156105d9576003805460ff168181111561058f57fe5b146105d4576003805460ff1916811790557f9145a7fd7de2aa5b50a289cf5dd2e2d100aa067911e49855b88f94b5a196f04b4260405190815260200160405180910390a15b61073a565b60055442111561066e5760026003805460ff16908111156105f657fe5b146105d457600e54600a546106109163ffffffff6111f616565b600954909150610626908263ffffffff61120816565b6009556003805460ff191660021790557f712173de1d50109191e0d0671c67415bf3d44508558069796106054c5600d5014260405190815260200160405180910390a161073a565b60045442111561073a57600a54600e5410156106e15760016003805460ff169081111561069757fe5b146105d4576003805460ff191660011790557f0c4f5d815bd2c3e7c8433a9d1cfd00fb1eb7882d59378327a234d51009fae8254260405190815260200160405180910390a161073a565b60026003805460ff16908111156106f457fe5b1461073a576003805460ff191660021790557f712173de1d50109191e0d0671c67415bf3d44508558069796106054c5600d5014260405190815260200160405180910390a15b50565b806000808080808061074f898861121e565b909650945061076c610767888763ffffffff6111f616565b611383565b9094509250610781848763ffffffff61120816565b91506000821161078d57fe5b600754600160a060020a031663f0dda65c8a8460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156107e357600080fd5b6102c65a03f115156107f457600080fd5b505050600160a060020a03891660009081526002602081905260409091200154610824908363ffffffff61120816565b600160a060020a038a1660009081526002602081905260409091200155610851838663ffffffff61120816565b600160a060020a038a16600090815260026020526040902060010154909750610880908863ffffffff61120816565b600160a060020a038a166000908152600260205260409020600101556011546108af908863ffffffff61120816565b601155600d546108c5908363ffffffff61120816565b600d556108d8888863ffffffff6111f616565b9050600081111561091457600160a060020a03891681156108fc0282604051600060405180830381858888f19350505050151561091457600080fd5b601254600160a060020a031687156108fc0288604051600060405180830381858888f19350505050151561094757600080fd5b505050505050505050565b60005433600160a060020a03908116610100909204161461096f57fe5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000808080806003805460ff16908111156109b557fe5b14156109c357506001610a20565b60016003805460ff16908111156109d657fe5b14156109e457506002610a20565b60026003805460ff16908111156109f757fe5b1415610a0557506003610a20565b6003805460ff1681811115610a1657fe5b1415610a20575060045b600d54600e5490959094509092509050565b60065481565b600754600160a060020a031690565b60055481565b60198054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae35780601f10610ab857610100808354040283529160200191610ae3565b820191906000526020600020905b815481529060010190602001808311610ac657829003601f168201915b505050505081565b6000805433600160a060020a039081166101009092041614610b0957fe5b610b11610563565b6003805460ff1681811115610b2257fe5b14610b2c57600080fd5b601554610100900460ff1615610b4157600080fd5b601254600160a060020a03161515610b5857600080fd5b600754610bcd90600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ba457600080fd5b6102c65a03f11515610bb557600080fd5b5050506040518051601354915063ffffffff6111f616565b600754601254919250600160a060020a039081169163f0dda65c91168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b50506015805461ff0019166101001790555050565b60178054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae35780601f10610ab857610100808354040283529160200191610ae3565b60005433600160a060020a039081166101009092041614610cdb57fe5b60155460ff1615610ceb57600080fd5b6012805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556015805460ff19166001179055565b60015433600160a060020a03908116911614610d4257600080fd5b6000546001547f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91600160a060020a0361010090910481169116604051600160a060020a039283168152911660208201526040908101905180910390a1600180546000805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0384160217905573ffffffffffffffffffffffffffffffffffffffff19169055565b6000546101009004600160a060020a031681565b600260208190526000918252604090912080546001820154919092015460ff80841693610100900416919084565b60115481565b60005433600160a060020a039081166101009092041614610e5057fe5b82600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ead57600080fd5b6102c65a03f11515610ebe57600080fd5b50505060405180515050505050565b60188054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae35780601f10610ab857610100808354040283529160200191610ae3565b60005433600160a060020a039081166101009092041614610f5557fe5b60155462010000900460ff1615610f6b57600080fd5b601254600160a060020a03161515610f8257600080fd5b601454600d54610f979163ffffffff61120816565b600d55600754601254601454600160a060020a039283169263f0dda65c92169060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610ffa57600080fd5b6102c65a03f1151561100b57600080fd5b50506015805462ff000019166201000017905550565b60168054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae35780601f10610ab857610100808354040283529160200191610ae3565b60045481565b600154600160a060020a031681565b60005433600160a060020a0390811661010090920416146110be57fe5b600054600160a060020a038281166101009092041614156110de57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a03908116610100909204161461112b57fe5b815183511461113957600080fd5b5060005b82518110156111f15760016002600085848151811061115857fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff191691151591909117905581818151811061119657fe5b90602001906020020151600260008584815181106111b057fe5b90602001906020020151600160a060020a03168152602081019190915260400160002080549115156101000261ff001990921691909117905560010161113d565b505050565b60008282111561120257fe5b50900390565b60008282018381101561121757fe5b9392505050565b600160a060020a03821660009081526002602052604081206001908101548291829182918290819081906003805460ff169081111561125957fe5b1480156112835750600160a060020a038a16600090815260026020526040902054610100900460ff165b80156112905750600c5484105b1561137357600c548996506112ab908563ffffffff6111f616565b9250828611156112b9578295505b6008546112cd90879063ffffffff61140116565b94506112e6600f54600b546111f690919063ffffffff16565b91508185111561130b578194506113086008548661142590919063ffffffff16565b95505b600f5461131e908663ffffffff61120816565b600f90815561133490869063ffffffff61140116565b905061134781606463ffffffff61142516565b9050611359858263ffffffff61120816565b600e5490955061136f908663ffffffff61120816565b600e555b5092989397509295505050505050565b60008060008060008592506113a36008548461140190919063ffffffff16565b91506113bc6010546009546111f690919063ffffffff16565b9050808211156113e1578091506113de6008548361142590919063ffffffff16565b92505b6010546113f4908363ffffffff61120816565b6010555094909350915050565b600082820283158061141d575082848281151561141a57fe5b04145b151561121757fe5b600080828481151561143357fe5b049493505050505600a165627a7a72305820e2b689ace3daeac854c0fa90273b3f3c22656dce664044dba6788eb8a6b45d510029

   Swarm Source:
bzzr://e2b689ace3daeac854c0fa90273b3f3c22656dce664044dba6788eb8a6b45d51

 

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.