Sponsored Link: Monaco VISA® - World’s Best Cryptocurrency CardICO LIVE NOW
Contract Overview
ETH Balance: 37.267127493427819071 Ether
ETH USD Value: $7,324.48 (@ $196.54/ETH)
No Of Transactions: 917 txns + 18106 internalTxns
  Latest 25 txns from a total Of 917 transactions View All

TxHash Block Age From To Value [TxFee]
0x24464c3982e4dc1250cb2300e7ef7a3815f706ef00364e2f5e218b2f9beb3fe1372205912 days 8 hrs ago0x5a1a7a7019c1236fad4f65c595bf5afe76a956d0  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0x8e56c7f1c162c6beac3e6fae4d2059ddc07326fed1cf32b905accc29a2f6116e371056714 days 11 hrs ago0x23ee1a1c83c2fff130448c9b22e5adc081a64eb9  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00042102
0xa579224e6557f5f70c4a2f7e2227ffd53dccabdcc4ea226806322235ef733c9c370818914 days 21 hrs ago0xfa0292cd00e208d1a0d44c67021de61e5289876a  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0xb96d53b4d97a44ae986d0230007570b540744db638214ab9c130e4fc7b3c9332370656215 days 5 hrs ago0x4382283c319401339a0afce7a1479cc8fcd81f5e  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00149252
0xe0caed588edcc9141f6a345510b1f49cfd4c2395280f8b7bb48a2b6b022784cb370564415 days 9 hrs ago0x8936c654b7837f6beca8547f8e66594c12ceb042  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0x763ed1add68067689b8bf8ba4bea847bbf60f9fda1e5723af3940cdc28e5e75e370511815 days 11 hrs ago0xa143655d9b783ef0b8a47b2eb324f49109342e98  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0xe9a01c6670d4a0f448a2b09389f03244939d55489f51365eecbcba19e4279468370266315 days 22 hrs ago0xeeee2f36d9a2c87fb1092df05f79665ac0380ab1  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0xb1fa91226e65dc4877be212b193121de851a67321101130b46d4204ca89f778d370265615 days 22 hrs ago0xeeee2f36d9a2c87fb1092df05f79665ac0380ab1  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0xd92fbf428f52957ab893f06096be23cb8c84ae47dc205e9846ea7fcc6289e5e6370039916 days 8 hrs ago0x1c5d76c0657336a8911642f708aced2556f21461  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00129056
0x46bd4c1fd443845545043dfc9d5aa1c8a481f980dd3e6e4db5b4fb0b52f07e6d370003016 days 9 hrs ago0x4bd4b4a91097f8604e0ffbb47e6cafa546104a28  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00129056
0x7d45685b0385bf211ae9be4c71e089d75568208aaaa81a92b7a62a799bfde9c8369864416 days 15 hrs ago0xa17070c2e9c5a940a4ec0e4954c4d7d643be8f49  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00118867
0xe6908ea31ef3a9d49cb3750f13fb09c210967dad0475b47aeb029afd95ebf0c4369853516 days 16 hrs ago0xc3978fe17a3273b2759c7754308cad62e619d38c  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0xfc4937d72ae2b7e13be1f5c34b47e529b6f0f9c0d85ea88853718bc2c89eff17369853116 days 16 hrs ago0xc3978fe17a3273b2759c7754308cad62e619d38c  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00042544
0x3527055a795ea88aff0f678a9611004028b240a63b780de1cee338db0a337092369750616 days 20 hrs ago0xb1ae2691b988b00daff33567f047cbbecef75714  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0x8e0b9fc9b7068e44b04df742f6017237d66ad395b1f7182341c2a48d278714bb369722116 days 21 hrs ago0x437d67005ff6458c7bc8ab916d2aac8b885b8eba  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00129056
0x326b8beb9d8fa77ef8093a2346f7fd56a5250aa33fcbcf822c61611d89550ffe369708116 days 22 hrs ago0x592a31a78d6abd2d5bec80bce776c4d85d58b44f  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00129056
0x16862e4dee333acd4a72f9cb5a4c0d3a5b25681b1cc9789249a4a0fe588e5737369551017 days 5 hrs ago0x90a64ed7b118631520ac1d71f348ff213ca51817  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0xe7cc040e1ad9f2b03f62adc895c640c05f47f465fa43ab8cbd00916bf414df33369543717 days 5 hrs ago0x6967d528fd582d55627668336b906ec690ac963b  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00042544
0xb34beabbeb3bc2b7c0ecedd67411684c9110a63bce9f785d338b20c0ef2f7967369414517 days 10 hrs ago0x2878322677f024aa82c6d2334f17c99de8c0af59  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0x6df04b162f873556160ad0ae0f6f15738fdc4e41bbf73a268f5752bf407996de369369117 days 12 hrs ago0x8680d0f89d2cb513569bc05a48c3bd0044c38540  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0xb97376a7897bb9e0ec37964fede54bd3c93ed974742788bc0e2d07b94e501b34369344717 days 13 hrs ago0xa2197aae379e8468fa34a649d2a790df08739cdf  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00129056
0x7b0feba46d89945437bcaedc53d573468b561218f5d4bda26fa2d53c256d32e2369327017 days 14 hrs ago0xa2197aae379e8468fa34a649d2a790df08739cdf  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00058182
0xf6080ef17602da2a27731f2259a061fa4895822bb1417a0e2c16009e43c5057e369319717 days 14 hrs ago0xf9890a3f31afe160d7174aaadb51197b47b3e96a  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00129056
0x15119ed0d6f5bdae0e4e72b4a6d52dc48ab7148480f760793db0ec4b6bfacf37369311717 days 15 hrs ago0x4e919451fc381116d996bbcf2676a12b0ebf1d39  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00129056
0x800054022017a16a665c310d83c36d19a85070589f3951b7b28531d9924113ae369244717 days 18 hrs ago0x99691d41c62e3a92d7d3062e046c6decda2dff47  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00135508

[Download: CSV Export ]    
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns from a total of 18106 View All
ParentTxHash Block Age From To Value
0xea4fffdbe237a59c68b165199acea27699ca28a17f6c36cfd0a4cc5f1a4f428237894305 mins ago0xe8a51be86ad96447d45ddeddc55013f25157688c0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001954896210924135 Ether
0x05956dd7724f84a8872f21e3a70788c9044ced855372a161a2dd27402d091dda378938315 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002163696210924135 Ether
0xb020635974d6ed85e347d42ba3907ffafad680f5bb176beba1d55a34a83bd063378938315 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002665896210924135 Ether
0x92804a10573efc7885fee47c49a716bfe5932e49fceb8577336efe2cfa026431378931933 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002665896210924135 Ether
0xac3533ec7841737c9b4e45355667e67ed07b1535b7c8599bf35381390f4b16bb378931733 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002215896210924135 Ether
0xbff5d60812cfb413f110a64fdd462dd2547e4c9cf25fe7700bfd704ba63247d4378930235 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002665896210924135 Ether
0xe7d144c62e42c745ee41c70238cb718dfc31c0a4e6a7224424f4f83bf97857f6378929537 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002665896210924135 Ether
0x22bb52606e8ca1c3bab0c24fea220ebef9109b495c7c1e3f9c40b6ccd8455e1a378928640 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001965696210924135 Ether
0x56011b5d6be56dcfaf9d3973a3157375a553fa2b488d88505882d8262abec46f378927741 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002665896210924135 Ether
0x9fc14d4ff47c19345a8079e32361e6dcc427f1b9644d85e81e2618da2973cdf6378927342 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002044896210924135 Ether
0xbc8bcb550cc4b56f66157f09be3286e64e80bfd793adc31ddfa2bb38044aba40378927043 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002665896210924135 Ether
0x999f9f6237612139daa7e9d993ef878f4a82cef9eab01b056bfde42910f2bdad378925248 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.026965896210924135 Ether
0x31e1e142729a165ed6cd2857419a4b51900eb7b88426cd49120b19be55b7e30f378924150 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.026965896210924135 Ether
0x96fcdb7cedfbb6c537b92546924e2fc4926b4ba8a94cbf00868258cd12718167378923352 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.022465896210924135 Ether
0xa3fe4549f0bbf18851e4f5794e93c3edb18257ec3b6887378cfb78a0120aef20378921858 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004465896210924135 Ether
0x414f3da0b1b172885ce5996f7798ca74aebbb908a3a87c750e3dd72efd7791e637891671 hr 11 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004465896210924135 Ether
0x7a59abbf7f1f0a5dc4fcbf540462eda3af622c5b3eaa25e084ac93f10cd719e337891601 hr 12 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004465896210924135 Ether
0x1282606cf548f09460b263d13edb758732b526c4be954edf52445e7878cb994e37891241 hr 19 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004465896210924135 Ether
0x0ebd1fa72728cb40641da19b9716ccf8d4313edfc7abdbf3384c81d8fe84404a37891151 hr 22 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004465896210924135 Ether
0x94134e04a8b6cc0a04e129d0998b4dedf9d2e24ed42d93a3abf05ef5ae12786037891081 hr 25 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004465896210924135 Ether
0xd538e091090ccdeda8b0dd4357ec1e3fadbc8137f4ace2a61b629e1db9b74a5437890941 hr 29 mins ago0xe8a51be86ad96447d45ddeddc55013f25157688c0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002665896210924135 Ether
0x3902dfbd8cd827e345f443213a7e5ce1e594b078d42749b6811bc0b19b9ee69a37890691 hr 34 mins ago0xe8a51be86ad96447d45ddeddc55013f25157688c0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004465896210924135 Ether
0x101cdff4088f610e98ba2da9919374bf4a42ab0050aca3953bff52c536f6aa7337890621 hr 37 mins ago0xe8a51be86ad96447d45ddeddc55013f25157688c0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002223096210924135 Ether
0xd486929b345581cad7d92923d422688b00c674f9e5270319606885b6c4983ff337890541 hr 38 mins ago0xe8a51be86ad96447d45ddeddc55013f25157688c0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004465896210924135 Ether
0x8ea60cfec254eff3bbcfb9737b0759d587ad7e5e64d83e8ff77476a147d77ace37890441 hr 41 mins ago0xe8a51be86ad96447d45ddeddc55013f25157688c0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004465896210924135 Ether

[Download: CSV Export ]    
Warning: The compiled contract might be susceptible to ConstantOptimizerSubtraction (low-severity), IdentityPrecompileReturnIgnored (low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: ProfitContainer
Compiler Version: v0.4.6+commit.2dabbdf0
Optimization Enabled: Yes
Online Solidity Editor:  Click To View



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.0;
/*
This vSlice token contract is based on the ERC20 token contract. Additional
functionality has been integrated:
* the contract Lockable, which is used as a parent of the Token contract
* the function mintTokens(), which makes use of the currentSwapRate() and safeToAdd() helpers
* the function disableTokenSwapLock()
*/

contract Lockable {
    uint public numOfCurrentEpoch;
    uint public creationTime;
    uint public constant UNLOCKED_TIME = 25 days;
    uint public constant LOCKED_TIME = 5 days;
    uint public constant EPOCH_LENGTH = 30 days;
    bool public lock;
    bool public tokenSwapLock;

    event Locked();
    event Unlocked();

    // This modifier should prevent tokens transfers while the tokenswap
    // is still ongoing
    modifier isTokenSwapOn {
        if (tokenSwapLock) throw;
        _;
    }

    // This modifier checks and, if needed, updates the value of current
    // token contract epoch, before executing a token transfer of any
    // kind
    modifier isNewEpoch {
        if (numOfCurrentEpoch * EPOCH_LENGTH + creationTime < now ) {
            numOfCurrentEpoch = (now - creationTime) / EPOCH_LENGTH + 1;
        }
        _;
    }

    // This modifier check whether the contract should be in a locked
    // or unlocked state, then acts and updates accordingly if
    // necessary
    modifier checkLock {
        if ((creationTime + numOfCurrentEpoch * UNLOCKED_TIME) +
        (numOfCurrentEpoch - 1) * LOCKED_TIME < now) {
            // avoids needless lock state change and event spamming
            if (lock) throw;

            lock = true;
            Locked();
            return;
        }
        else {
            // only set to false if in a locked state, to avoid
            // needless state change and event spam
            if (lock) {
                lock = false;
                Unlocked();
            }
        }
        _;
    }

    function Lockable() {
        creationTime = now;
        numOfCurrentEpoch = 1;
        tokenSwapLock = true;
    }
}


contract ERC20 {
    function totalSupply() constant returns (uint);
    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);
}

contract Token is ERC20, Lockable {

  mapping( address => uint ) _balances;
  mapping( address => mapping( address => uint ) ) _approvals;
  uint _supply;
  address public walletAddress;

  event TokenMint(address newTokenHolder, uint amountOfTokens);
  event TokenSwapOver();

  modifier onlyFromWallet {
      if (msg.sender != walletAddress) throw;
      _;
  }

  function Token( uint initial_balance, address wallet) {
    _balances[msg.sender] = initial_balance;
    _supply = initial_balance;
    walletAddress = wallet;
  }

  function totalSupply() constant returns (uint supply) {
    return _supply;
  }

  function balanceOf( address who ) constant returns (uint value) {
    return _balances[who];
  }

  function allowance(address owner, address spender) constant returns (uint _allowance) {
    return _approvals[owner][spender];
  }

  // A helper to notify if overflow occurs
  function safeToAdd(uint a, uint b) internal returns (bool) {
    return (a + b >= a && a + b >= b);
  }

  function transfer( address to, uint value)
    isTokenSwapOn
    isNewEpoch
    checkLock
    returns (bool ok) {

    if( _balances[msg.sender] < value ) {
        throw;
    }
    if( !safeToAdd(_balances[to], value) ) {
        throw;
    }

    _balances[msg.sender] -= value;
    _balances[to] += value;
    Transfer( msg.sender, to, value );
    return true;
  }

  function transferFrom( address from, address to, uint value)
    isTokenSwapOn
    isNewEpoch
    checkLock
    returns (bool ok) {
    // if you don't have enough balance, throw
    if( _balances[from] < value ) {
        throw;
    }
    // if you don't have approval, throw
    if( _approvals[from][msg.sender] < value ) {
        throw;
    }
    if( !safeToAdd(_balances[to], value) ) {
        throw;
    }
    // transfer and return true
    _approvals[from][msg.sender] -= value;
    _balances[from] -= value;
    _balances[to] += value;
    Transfer( from, to, value );
    return true;
  }

  function approve(address spender, uint value)
    isTokenSwapOn
    isNewEpoch
    checkLock
    returns (bool ok) {
    _approvals[msg.sender][spender] = value;
    Approval( msg.sender, spender, value );
    return true;
  }

  // The function currentSwapRate() returns the current exchange rate
  // between vSlice tokens and Ether during the token swap period
  function currentSwapRate() constant returns(uint) {
      if (creationTime + 1 weeks > now) {
          return 130;
      }
      else if (creationTime + 2 weeks > now) {
          return 120;
      }
      else if (creationTime + 4 weeks > now) {
          return 100;
      }
      else {
          return 0;
      }
  }

  // The function mintTokens is only usable by the chosen wallet
  // contract to mint a number of tokens proportional to the
  // amount of ether sent to the wallet contract. The function
  // can only be called during the tokenswap period
  function mintTokens(address newTokenHolder, uint etherAmount)
    external
    onlyFromWallet {

        uint tokensAmount = currentSwapRate() * etherAmount;
        if(!safeToAdd(_balances[newTokenHolder],tokensAmount )) throw;
        if(!safeToAdd(_supply,tokensAmount)) throw;

        _balances[newTokenHolder] += tokensAmount;
        _supply += tokensAmount;

        TokenMint(newTokenHolder, tokensAmount);
  }

  // The function disableTokenSwapLock() is called by the wallet
  // contract once the token swap has reached its end conditions
  function disableTokenSwapLock()
    external
    onlyFromWallet {
        tokenSwapLock = false;
        TokenSwapOver();
  }
}


pragma solidity ^0.4.0;
/*
The ProfitContainer contract receives profits from the vDice games and allows a
a fair distribution between token holders.
*/

contract Ownable {
  address public owner;

  function Ownable() {
    owner = msg.sender;
  }

  modifier onlyOwner() {
    if (msg.sender == owner)
      _;
  }

  function transferOwnership(address _newOwner)
      external
      onlyOwner {
      if (_newOwner == address(0x0)) throw;
      owner = _newOwner;
  }

}

contract ProfitContainer is Ownable {
    uint public currentEpoch;
    //This is to mitigate supersend and the possibility of
    //different payouts for same token ownership during payout phase
    uint public initEpochBalance;
    mapping (address => uint) lastPaidOutEpoch;
    Token public tokenCtr;

    event WithdrawalEnabled();
    event ProfitWithdrawn(address tokenHolder, uint amountPaidOut);
    event TokenContractChanged(address newTokenContractAddr);

    // The modifier onlyNotPaidOut prevents token holders who have
    // already withdrawn their share of profits in the epoch, to cash
    // out additional shares.
    modifier onlyNotPaidOut {
        if (lastPaidOutEpoch[msg.sender] == currentEpoch) throw;
        _;
    }

    // The modifier onlyLocked prevents token holders from collecting
    // their profits when the token contract is in an unlocked state
    modifier onlyLocked {
        if (!tokenCtr.lock()) throw;
        _;
    }

    // The modifier resetPaidOut updates the currenct epoch, and
    // enables the smart contract to track when a token holder
    // has already received their fair share of profits or not
    // and sets the balance for the epoch using current balance
    modifier resetPaidOut {
        if(currentEpoch < tokenCtr.numOfCurrentEpoch()) {
            currentEpoch = tokenCtr.numOfCurrentEpoch();
            initEpochBalance = this.balance;
            WithdrawalEnabled();
        }
        _;
    }

    function ProfitContainer(address _token) {
        tokenCtr = Token(_token);
    }

    function ()
        payable {

    }

    // The function withdrawalProfit() enables token holders
    // to collect a fair share of profits from the ProfitContainer,
    // proportional to the amount of tokens they own. Token holders
    // will be able to collect their profits only once
    function withdrawalProfit()
        external
        resetPaidOut
        onlyLocked
        onlyNotPaidOut {
        uint currentEpoch = tokenCtr.numOfCurrentEpoch();
        uint tokenBalance = tokenCtr.balanceOf(msg.sender);
        uint totalSupply = tokenCtr.totalSupply();

        if (tokenBalance == 0) throw;

        lastPaidOutEpoch[msg.sender] = currentEpoch;

        // Overflow risk only exists if balance is greater than
        // 1e+33 ether, assuming max of 96M tokens minted.
        // Functions throws, as such a state should never be reached
        // Unless significantly more tokens are minted
        if (!safeToMultiply(tokenBalance, initEpochBalance)) throw;
        uint senderPortion = (tokenBalance * initEpochBalance);

        uint amountToPayOut = senderPortion / totalSupply;

        if(!msg.sender.send(amountToPayOut)) {
            throw;
        }

        ProfitWithdrawn(msg.sender, amountToPayOut);
    }

    function changeTokenContract(address _newToken)
        external
        onlyOwner {

        if (_newToken == address(0x0)) throw;

        tokenCtr = Token(_newToken);
        TokenContractChanged(_newToken);
    }

    // returns expected payout for tokenholder during lock phase
    function expectedPayout(address _tokenHolder)
        external
        constant returns (uint) {

        if (!tokenCtr.lock())
            return 0;

        return (tokenCtr.balanceOf(_tokenHolder) * initEpochBalance) / tokenCtr.totalSupply();
    }

    function safeToMultiply(uint _a, uint _b)
        private
        constant returns (bool) {

        return (_b == 0 || ((_a * _b) / _b) == _a);
    }
}

  Contract ABI  
[{"constant":false,"inputs":[],"name":"withdrawalProfit","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tokenHolder","type":"address"}],"name":"expectedPayout","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"initEpochBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newToken","type":"address"}],"name":"changeTokenContract","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"currentEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenCtr","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[],"name":"WithdrawalEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenHolder","type":"address"},{"indexed":false,"name":"amountPaidOut","type":"uint256"}],"name":"ProfitWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newTokenContractAddr","type":"address"}],"name":"TokenContractChanged","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052346100005760405160208061085483398101604052515b5b60008054600160a060020a0319166c01000000000000000000000000338102041790555b60048054600160a060020a0319166c01000000000000000000000000838102041790555b505b6107e0806100746000396000f36060604052361561006c5760e060020a60003504632ebec916811461007557806336bc32a21461008457806350148ed2146100a6578063523aee69146100c557806376671808146100d75780638da5cb5b146100f6578063aef251a71461011f578063f2fde38b14610148575b6100735b5b565b005b346100005761007361015a565b005b346100005761009460043561052c565b60408051918252519081900360200190f35b3461000057610094610694565b60408051918252519081900360200190f35b346100005761007360043561069a565b005b3461000057610094610739565b60408051918252519081900360200190f35b346100005761010361073f565b60408051600160a060020a039092168252519081900360200190f35b346100005761010361074e565b60408051600160a060020a039092168252519081900360200190f35b346100005761007360043561075d565b005b60006000600060006000600460009054906101000a9004600160a060020a0316600160a060020a031663018e13d06000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f115610000575050604051516001541015905061026d57600460009054906101000a9004600160a060020a0316600160a060020a031663018e13d06000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750506040518051600155600160a060020a033016316002557f66f7d730c9ba098beec19ac6c1d94380c4f8b016455b36cb348ca4c646a075bc9150600090a15b600460009054906101000a9004600160a060020a0316600160a060020a031663f83d08ba6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151151590506102dc57610000565b600154600160a060020a033316600090815260036020526040902054141561030357610000565b600460009054906101000a9004600160a060020a0316600160a060020a031663018e13d06000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f115610000575050604080518051600480546000602094850181905285517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a03338116948201949094529551939b50911694506370a08231936024808201949392918390030190829087803b156100005760325a03f115610000575050604080518051600480546000602094850181905285517f18160ddd0000000000000000000000000000000000000000000000000000000081529551939a50600160a060020a0390911695506318160ddd94808301949392908390030190829087803b156100005760325a03f1156100005750506040515193505083151561046557610000565b600160a060020a033316600090815260036020526040902085905560025461048e9085906107bf565b151561049957610000565b6002548402915082828115610000576040519190049150600160a060020a0333169082156108fc029083906000818181858888f1935050505015156104dd57610000565b60408051600160a060020a03331681526020810183905281517f016e128b6bdadd9e9068abd0b18db2fc8b27ed3dbced50e4aa6cc0a6934251ab929181900390910190a15b5b5b5b5050505050565b6000600460009054906101000a9004600160a060020a0316600160a060020a031663f83d08ba6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151151590506105a05750600061068f565b600460009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150600254600460009054906101000a9004600160a060020a0316600160a060020a03166370a08231856000604051602001526040518260e060020a0281526004018082600160a060020a03168152602001915050602060405180830381600087803b156100005760325a03f115610000575050604051519190910290508115610000570490505b919050565b60025481565b60005433600160a060020a039081169116141561073457600160a060020a03811615156106c657610000565b6004805473ffffffffffffffffffffffffffffffffffffffff19166c010000000000000000000000008381020417905560408051600160a060020a038316815290517fe89f98a27789c8313baa22de83cdb921b7026d66af0ee02973c97d45f952b6be916020908290030190a15b5b5b50565b60015481565b600054600160a060020a031681565b600454600160a060020a031681565b60005433600160a060020a039081169116141561073457600160a060020a038116151561078957610000565b6000805473ffffffffffffffffffffffffffffffffffffffff19166c01000000000000000000000000838102041790555b5b5b50565b60008115806107d75750828283850281156100005704145b90505b9291505056

    Constructor Arguments (ABI-encoded and appended to the ByteCode above)
0000000000000000000000005c543e7ae0a1104f78406c340e9c64fd9fce5170

-----Decoded View---------------
Found 1 constructor arguments :
Arg [0] : 0000000000000000000000005c543e7ae0a1104f78406c340e9c64fd9fce5170

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward