Contract Overview
ETH Balance: 23.898126994 Ether ($1,209.01)
Mined:  0
No Of Transactions: 581 txns + 8670 internalTxns
Misc QRCODE
Address Watch Add To Watch List
Contract Creator 0xd19e13d40188a0123da1561c8f063ce5cadecd56at txn 0x32af10440853caa0138ff5c111e93fec5390a274dcac7a5ca09d877b7d3b6877
Token Tracker
  Latest 25 txns from a total Of 581 transactions View All

TxHash Block Age From To Value [TxFee]
0xa9aad2216327a99fc53a425c8c9d22e3a715e3418c21b3e52aff30250873dc0833979733 days 15 hrs ago0x2632ed942c716534e41351b9c34e6f1f85675159  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00149252
0xd546624e8cfc85cdb4659dc5f9db082d12571d7a88cac3c6db04edd30d41a498335936210 days 2 hrs ago0xb1ae2691b988b00daff33567f047cbbecef75714  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.01
0x36a9e96d44d0e8925fff7692b084fbcfbd1d47956e3ad5a095f267718f58c258335635110 days 14 hrs ago0x36bacf76e872e75e62e1dca704ea639dffd8a00a  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.0082
0xa61aa2a3e26067d56704366c00d1c73a7bab00d4c40ff5f6fda4aacdf9fd4e0f335545110 days 17 hrs ago0x1b5855c3c0e089c240636a0e1828f778948c9c48  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00305966
0x7e131501373d339f69f46d279ac09bd74f180f7bae1ee4d77cc537d0b9b6a722335249711 days 5 hrs ago0x03c2db1c5596c9016b7f15559c997f9e192a25d8  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.0082
0x1291698d0d25c2268f110215a25a6b454ea259f590a3f5fc0b824d773b6b3c72335123811 days 10 hrs ago0x90a64ed7b118631520ac1d71f348ff213ca51817  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00203064
0x1a3b28f16afbda6765c0eab8050bed862e48579db02f8d3f36677da16b334cd7335090311 days 12 hrs ago0x1d4d248180157014d0e8ca09c48035f71ab10048  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00264564
0x18743ecb85b9a58c350d176893c87da451e6ac57296d66a054661ccd20512b04335072611 days 12 hrs ago0x2878322677f024aa82c6d2334f17c99de8c0af59  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00271017
0x00085881232186f94f9d7323ba1561b0d0b9e47969627236e5e390f18f2bd3c4334823611 days 22 hrs ago0x82135af3b04cdbf640d64a37eb2a23b6b1f0196b  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00203064
0x4f32fc5c52378370702fbd0118d919b3f66a749bfa3e0f324bdc509baf8014d5334726012 days 2 hrs ago0xd87c80704d6b871868bd6c3eb9390d0d133cc0c5  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00271017
0x83e83d5762877c998ac5d43b1a6c6c2a9f63473f70385f3e08f73d58d36cffaa334708712 days 3 hrs ago0x41babf07262b914f91f6d60fa8580fcd5643f2d5  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00208017
0x30d4a6ab9118d441b1a31cb420773e7e505e4d7a62a0616f33b9eb22ec75d753334609612 days 7 hrs ago0x48654226c94881e159d0cb35f29edfd16bc1247c  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00208017
0xe099d4b0785050507d9ad92bae17b60a36eea59d5755de9e517b629dac4fbdea334501312 days 11 hrs ago0xa2db2db479e228e3c60e8e0c7b21ff8c243f4e4e  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00203064
0x5b1c16a408cb58aa97e77442d66f0aae87dbb9bbf560e4aedd630fb3c94b5fa7334466412 days 13 hrs ago0x7c6600d3280c85908f41a26ba677e4f57208f119  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00203064
0xea9ace0e662346226d603ea4afdfa193b1e5b4293ef29d6f7e6ce07ff052a029334431912 days 14 hrs ago0x901fdbcf8d3fee591b0512b16999e3da5b5f2e98  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00264564
0x5bf97bac4a652316196dd72d72f7c0caf13bd1c081fb8615aa391172d52e77da334429612 days 14 hrs ago0x94e3f7017a0b9a5bdd5a8979e3c409d1f8629960  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00086309
0xa4e721fbe952e24c8ac6120a09c76f9920e363b535da3271adf6eda13f8eef5f334389112 days 16 hrs ago0x51c2e404a67cfb1a5f4227d49597a496c2ac97dd  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00203064
0xeafb7aa0738f7d8c77d8fafa6ece79837862327917686d091084d42a85491d85334387912 days 16 hrs ago0x004775aad620435ae57ffb0aee0cc30241e9b9bf  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00203064
0xa4d76ddf8e61814f6a1fb8811c21968a0f3db9108b41ed003845060f935c84d0334385712 days 16 hrs ago0x7ed579aa9c0504aa97bc88dc3cd3623b11c13913  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00264564
0xf54c23c80fb53c9daed48d7d4434c8cb6ffc1618d7c474a7d771c0a6e7d0991c334384712 days 16 hrs ago0x7ed579aa9c0504aa97bc88dc3cd3623b11c13913  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00086309
0x847da197cab7617e0794101d329987ee18c6eda26c01a291d9290826a8ff7b21334367712 days 17 hrs ago0x7452f4074605dd376a46a9fb664843447194dc2f  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00203064
0xc9a5a3f45071c173816bf80f2dd6859f3ed0b0a5df639372900ad4f77f65adbe334358312 days 17 hrs ago0x66a37c0372d294cbef04b2410a1eb76d71005dbe  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00264564
0x665d215eebe0bdb142217e7528f8ff8147be92285400ebf4dc7feff909bcf49c334346612 days 18 hrs ago0xed87da571d7258f68dfd63322ff3107d8b3a8c34  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00264564
0x76c6e725e4ce9b134c7b99a06bbf203ce047313d8b6f97c1e09cc77bc2198bbc334336912 days 18 hrs ago0xee67364b9119ba6aeb75b2886386fa5b7803a94a  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00264564
0x2b725a54e23f0fe65bce1c1a081d09f22e5d2bd8e35f9594fdb667d79801a874334316012 days 19 hrs ago0x8680d0f89d2cb513569bc05a48c3bd0044c38540  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00203064

[Download: CSV Export ]    
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns from a total of 8670 View All
ParentTxHash Block Age From To Value
0xafda181f2a122c61346493fdc37603cc8b2f3b25dab23bc33c9df6f5d69811c834193781 hr 19 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004453115940119761 Ether
0x245f7153e4814b601b565c50b6febab273528580ff7a796ef5e21c1c4891254134192042 hrs 1 min ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.007468133329749761 Ether
0xa9c7fbcf9475a61026ac0596e6c110384d70d13e47b28e2cef62d461b5b37c0834191772 hrs 7 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004003289836419751 Ether
0x2e78740598548f54cb5c661e9c19455f6727ee80d6f2cb5cba53187a64c4950b34186994 hrs 4 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002113115940119761 Ether
0x45dac915e607ca46577ffbddc9c4340ce48b26a41859ceaa4a79cf432637b0a134184984 hrs 53 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002203115940119761 Ether
0x2a173a680f4f12fda31f62046a94953031444b6ba3f63fa3c453253e9cd71e4c34183955 hrs 15 mins ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002203115940119761 Ether
0xe7a6d2d1d00fe05263e2dd27b2942814d127b97a6f045f15f5a40022cf39fc4d34180616 hrs 38 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004453115940119761 Ether
0xc80f656cedcdfe16a004bdbdeb44da8f45fe7d080894afca4de8ee17b43d35d734175298 hrs 42 mins ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001960115940119761 Ether
0x246976358a6040939bb908c10b342690281de4133b316597990e4255f53c287b34174568 hrs 58 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.017953115940119761 Ether
0x07a3164288fdb0f6b45494aefaf4aac4adcdafdf559d7df1bc46ff7f7d9da5e634174419 hrs 1 min ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.035953115940119761 Ether
0x7b2dffa6b3ae9df92182fe62b1c2d282532e00cac354705c90022a29e81a62a434174169 hrs 5 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.017953115940119761 Ether
0x75312bddd20e87ce35fbc0c64741abbaf18bee3acac059e457508515596e2a1234174089 hrs 7 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.017953115940119761 Ether
0xb0a3c328cc2abb2a7048dec0ad7a061ca02cac4ce1c4900f489a386164fdb71834173959 hrs 11 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001942115940119761 Ether
0xf0b68c0a9e073074e58f9410f345442e0cee7bd264522b34bb3efac1f0fd299c34173219 hrs 27 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004453115940119761 Ether
0x63c04f7082ce0cbcaca9e5bcbed6f35a4b6ff9eed99becc6e0e4b155dccccc6e34172569 hrs 39 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.005353115940119761 Ether
0x8a366fda1b8973800f19c606d255533489d34fed43c7c9e73bff2ce1f4a4a2a834172369 hrs 45 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002653115940119761 Ether
0x1e124eaf0c3929cf34de29f0bdf9fa15c06dbe7dcde2e07dc22fd75063c87b4a34171829 hrs 59 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.017953115940119761 Ether
0xa00278345c3030d90939b562eb96723953a5733a77a170b17653d32fcec01501341717210 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004453115940119761 Ether
0xf39fbfd5441ab535bfc5f7d6ab3c1f2b31e68720d67907ead85510372a8b331b341707910 hrs 25 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.017953115940119761 Ether
0x7ef39eb1f574ec8027207555ee0f73c63b7f1d050de67218cdb17f78fda39683341706610 hrs 28 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002653115940119761 Ether
0xc1904cb441e3df32f5e4880d91766b8609702a068d3d992c2fe464d9e79ff1d7341699810 hrs 45 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.006253115940119761 Ether
0x9958bb2e11f15b32f60c99e373f8fe42b3ed1e9e2e2c214fa81681af9b57f9a2341684111 hrs 26 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.017953115940119761 Ether
0x8645f5e6f74a7b489ecb0453573fa0f96d69d7f7a5da7175c84d116befba070b341683011 hrs 30 mins ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.008953115940119761 Ether
0x69c7e796c6d49b05c2067ba78d30293c5960df8929394a44788a99757ea9d3bc341618714 hrs 6 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.021679215940118761 Ether
0xc1d142307b91571ce9a49502b08cea0204c6780c0e49f083117ce135a59bead7341617814 hrs 9 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.012679215940109761 Ether
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