Contract Overview
ETH Balance: 31.329524490541861457 Ether
ETH USD Value: $1,526.06 (@ $48.71/ETH)
No Of Transactions: 745 txns + 12889 internalTxns
  Latest 25 txns from a total Of 745 transactions View All

TxHash Block Age From To Value [TxFee]
0x7ed0427f958b2f0051404fa8fa678446f8f6a94e5c4a27df16979a30e3affc55358522614 hrs 7 mins ago0x1587c229d1471ed87cd45120c9b0c9812f28fb52  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00149252
0x88092d2c37966c601d420a4377a17dd6ccc2310513198058ce5ba44d46957538358450617 hrs 2 mins ago0x11b186814dabc39b61b55b751974d9fb0ec5f96b  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0x3e93ed537db918109cee54f845e611154d079178edf659d1f1517ef8c83caced35645174 days 3 hrs ago0x4b415ae76f1a6236da46256131095487d33d8259  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0x1f95d006ee9dac7f34b7fdf79084fb3e8f6aed7de5cb1a002f6b011edb4c45f035551685 days 17 hrs ago0xeaff2fbf60a19eb0853d061483d08ccf329946e4  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0xec601a2e20962a8bb656f9cfe47fb6f04089b62362dbe8f57ab70938e43f77f835504306 days 13 hrs ago0x74df15806ff901ea4f80970a2171d55dce66dfad  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00149252
0x960953381afd9307026e1dc93d4044ef3ac12d8b349fcc107b0b9fb8d90454f935443287 days 14 hrs ago0x4174056fb5d6e09c5410e744b2865ddbc86b9d76  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00149252
0xb8a18fcd522ac77f44d2c6f9d8b5f83061e45a0c31001de23d9242507d5f117435374238 days 19 hrs ago0xcf357b8acef41eb01029beba69091398f3df4df4  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00149252
0x81bb5d500ef0561f9644c66133a7f533f2a28cfea5917134d1f136ab5c5b941f35333729 days 11 hrs ago0xb6fa6844930db3e620d037ce682fe18ad8e72502  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0x15040f9203e478224db63e352a5fa1ffe893e5daeef7b04521303383b68aa4a8353034110 days 18 mins ago0xc046a4227f9a79cd1b217e1b085cc23c7f35e28b  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00149252
0xe89fac07ec200013e90f55ebe2ceed10c15143d8c6eda14b7b722c6a589189de353024610 days 38 mins ago0xc046a4227f9a79cd1b217e1b085cc23c7f35e28b  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.004
0xfee9867337a0b911f2f6a2d5a3bdece5f4ccb4befc1a8b0f124a66d77d13b276352567410 days 19 hrs ago0x3833f8dbdbd6bdcb6a883ff209b869148965b364  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0x5a85dc0d9140a74ce2767f7e172d6f718ad85c7eaeb78261aa628f3183683db8352471010 days 23 hrs ago0xb205d1f7ee10282dc77cc44712a108eb0a31b3c3  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0x4894e0ece2f4d9eabb2fe825ebfadf9f41687cea6ae72cdc54464603330a9d0f352347411 days 4 hrs ago0x09f346c47dd0a28671121d5e323ff59c90dd0345  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0xac25d66924d9abcec8b5596f4e39129ab4679fc9b5e251df47a4ca1284fa774b352329811 days 5 hrs ago0x33799407bb2344a4ca7ed6d7a56de59006258518  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00129056
0xb7e056807f6dcce8010292ddc4b6c4628fcf3feef05ef39e9bafff99ec4355c1352259111 days 8 hrs ago0xe3bd84083221f7d43bb6fdf2bf34846a18414d91  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0xf6e4be3203c33a07ec04f20a6ee6f46247bbb31abb8d3531a0f56a2ca4e942cc352234111 days 9 hrs ago0x932fa7f07fdf6224184fd5fd9f9cec1710e03449  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0xb310cc5cd4e7c78422b62191a686bde005586b58102fac4239746fb81d03d70a351828312 days 2 hrs ago0x4e06cf5913c1cc5ed9cab5ae065e6580dcb11e14  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0xa688093c8fd99f4b9c33a5f7d7852595afe015187f57a4ab724a9a0203504d6f351819412 days 2 hrs ago0xc4a69fbf4511a1377161834cb7a3b8766953db02  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00129056
0x0a3b3597cbe468f37832ad85c6b47afaf7803aba6ebb96aebf4f0ebc353917ea351788012 days 3 hrs ago0xd5a47e20eb621945e01f2ced6637f06f1d991a6f  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0xdd4f30939e2a507405273c13cd6c3902645227e7a80e0206e0e1518c549f8e3d351697112 days 7 hrs ago0xd68561fab1e913e128edcfddac8b45337e0821a8  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0x28e9797855ba720521c2f8a343fd98c6502e06875f9babde6654fef96f073533351673712 days 8 hrs ago0xe777000c1e482fd9c2c4a41bb870025f62b30592  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0xef94f94a57ea9398e572cd44ff6a031ca9b0580f72f0babbfb97c51c56b21a34351664012 days 9 hrs ago0x90a64ed7b118631520ac1d71f348ff213ca51817  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0x8d6974b36ebc3c19b18b7b5041c166c1b2bc3f0d1048af6624378974209a2dfb351656812 days 9 hrs ago0x94e3f7017a0b9a5bdd5a8979e3c409d1f8629960  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0xcc1bd10ba51ca1c56fbcafb2f0989a66b44bc41ce2261996627939907fd0c9ee351648112 days 9 hrs ago0x19036213018c1c14ada53cf4301667d7126ea693  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00099056
0x62a1d4ac77054bcf5299b6ad03540b4e9c54560fefa8f0e2095ab66f94ead2c0351613312 days 11 hrs ago0x9faaa684a25c11351429d44a2785c245c06a368f  IN   0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50 Ether0.00129056

[Download: CSV Export ]    
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns from a total of 12889 View All
ParentTxHash Block Age From To Value
0x877a48b6c42636b68ea62a4168f181b5c879d6a3a0225255b07eaedb6a679e96358843051 mins ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.008958864688524591 Ether
0xff053c52967968c3053ad4eb95492a113226f2d0314367e38dda49d261dfa18135882501 hr 27 mins ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002037864688524591 Ether
0xa7c6497ed897fbb40ebf0279a4830f574ae062dfb8e96f18a5feb0116d74edc935881791 hr 47 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.008958864688524591 Ether
0x5458398b713a9f62b91b26341f238e91f3ac0d76fe60865efd7a314643082e1a35880662 hrs 22 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001958664688524591 Ether
0x3447c001e4b6c179ed647660fdb04bad010155cab4d4de63ddc7b0a70ee8709d35878673 hrs 12 mins ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001947864688524591 Ether
0x3efa73d0fcdca1e68b9cf0c69a6f1e6682a3082aedd3b8617bbfd8c1e6809c7d35878083 hrs 24 mins ago0x4e646a576917a6a47d5b0896c3e207693870869d0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002658864688524591 Ether
0x0885fb358efb30ff6fb5cc9f0ecc18ea468231da8e3d2bb52b19346e0f76a79235873375 hrs 25 mins ago0xe8a51be86ad96447d45ddeddc55013f25157688c0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001998264688524591 Ether
0x4f872b8db4def7b37753bc48793d4e3b562ece54a1f4571f0635da56aef9732c35870726 hrs 29 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.008958864688524591 Ether
0x528521a2b22ec045648176071cd2f69235784df19030bf080634c46e789ef23b35870606 hrs 31 mins ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002658864688524591 Ether
0x2b011f7401b2082b4c0f1c1655f30191e10291cc0b9598d29d4aa1532d27045635869686 hrs 54 mins ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.008958864688524591 Ether
0x19c4a7c3b4b1a0540f9016f8d7878196f9813264b80dc7a72eb2ae674b0816b935868327 hrs 27 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001965864688524591 Ether
0x3cc9d814ee76e8914cc77c0b4e32b7420876691d09d3ceec239525a7612d6b7535866618 hrs 16 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002028864688524591 Ether
0x1a6f0dc7bd4c3501fb861cb28efcb0b0f58838c7c035461d638c1b88dce4bfa835866218 hrs 24 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002028864688524591 Ether
0x38688cc7d1a83eb2b18ed860ab01d6373702a5b5bebe26cb211505d38be1117a35866108 hrs 28 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002028864688524591 Ether
0x9dfaa3afb7f4c3c7377945a1d883d3fec0a157b7fcafb46e081456721c123cf735865898 hrs 31 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002028864688524591 Ether
0x6d810313d5b1548906772c7687abd4366104e581e5c86f10cfe30ee9b52df00635865818 hrs 33 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002028864688524591 Ether
0x8c6d06053fbccf9b9fad7d423822afe2fc5e5274fcf7af6382a5a39002a1ef7435865258 hrs 50 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.003378864688524591 Ether
0x4b1d1a34228118949898aa3e0b98d0bd1a45c7f809d45e190d7edaf2aba885a435864988 hrs 55 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002028864688524591 Ether
0xdb9c1538d83388718ad1fca2615f43df77b2c188d84976b53414c6f8d15fb8c935864888 hrs 57 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002028864688524591 Ether
0x22ef1dc3c5551f2013308575182bae87cb270abe627ccde1d2cfff31cc4f88b435864609 hrs 4 mins ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002028864688524591 Ether
0x4826835b695514a6d88ba0da8b12353afbcf107bb3037946a45dd1da1d737bd835864389 hrs 10 mins ago0xe642b6f79041c60d8447679b3a499f18d8b03b810x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002028864688524591 Ether
0xf6ee10a80f7c4641973690f306258929fcfe5982f75e92a4aac6d9f25d34ceb935864169 hrs 15 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.008958864688524591 Ether
0xe317e69d84989f5c5cbb2ec71476c6bac79efc276c040a59e60ec022e1fdc62c35863619 hrs 25 mins ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.008958864688524591 Ether
0x93d2b04f84f6706c761a6965503ec69a622f40c14b6d9b725066d7d3cbdac29235863319 hrs 33 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.017958864688524591 Ether
0x487ff72b159bb070d210488e21b9f7b3b408b8067c0135a0fa6a70ebe65ba77335863189 hrs 36 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.008958864688524591 Ether

[Download: CSV Export ]    
Warning: The compiled contract might be susceptible to 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