Contract Overview
Balance: 343.707372778475207604 Ether
Ether Value: $43,843.31 (@ $127.56/ETH)
Transactions: 318 txns
 Latest 25 transactions from a total of 318 transactions

TxHash Age From To Value [TxFee]
0xbecada3a80d327afa73a5acdd83bfcc77e8f46dc215de3bd9a5ed665616c81e8179 days 7 hrs ago0xf32a630d796f8c8f01aa20285e6375089f2761f1  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0 Ether0.003073237
0x6f20b7712091b778b752dd506bc9dffc238ce0d6b5341b66246167f6898302d2186 days 9 hrs ago0x454e3187a9ded5bb1c47bed4420fc14e18136454  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0 Ether0.000149914
0x13a46f86217593e16188661dc172507d6f0543b23fbfec003f8f15e02cc02add221 days 1 hr ago0xdf406fe4b4dae9d4ec0a2b333e1b7dca3370555f  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0 Ether0.000074957
0x801afd850d40bbe813dc2c2b1b5b16d478b298db41a043eab9c5a0a8cb3ae9c1237 days 9 hrs ago0x919158a7ae165d82f4d9f3e7c49c4452908b59ea  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.5 Ether0.00013168
0x6f45f723f9e74cb7f4562c4a8cef6b1ce0815cbd52bf7152370b10a746038dd0255 days 11 hrs ago0xd580369624ad0849188a623a8a045f58963adc53  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.102 Ether0.00013168
0xf71c7a9d60e873a55ad5ead90da362993a1a03609d702c4b1b4284265f0fd0ae257 days 14 hrs ago0xdf406fe4b4dae9d4ec0a2b333e1b7dca3370555f  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0 Ether0.000074957
0x28c91fd5b859471d09e283fc556b14024b9f615af70354facceba283860552e9257 days 15 hrs ago0x727bf9c90e94759765e56772bd0b34ca79801b49  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0 Ether0.000195936
0x482ed9f8d6895fc94f52661b6f62e4e4c521effcb35110ba03813d2acee9022d261 days 14 hrs ago0xc950fdb8483507282203608c4de31f19451606f7  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.088874274 Ether0.00013168
0xaa9172fa3958195ede18b368bbc06918a1a15660c2ebafe5c6c040379913cdea274 days 38 mins ago0x1eb6847144a51f32dc88ebf7c014c2da7d91b2ec  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.005 Ether0.000106238
0x04ffdc4d498a061f8afe6686980ecf116b13666cf3340588a5ab28b729e87a4e278 days 19 hrs ago0x4263a279178a52712db86ec128bf968ae9dbd50c  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.5 Ether0.00009658
0x659c28b6c879f691dd7b1761cebe6b900e62f4eafc16cde17721c332a49adbf3280 days 16 hrs ago0x64c50b50176e8c8b1b277e4b6644b51b4ea2db3b  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.002 Ether0.0004829
0xeeb2c4ca820e97e55158ca24a2c9b0d0cccd6c1a37df4764f19186d63f192048280 days 17 hrs ago0x4133e3e65f8b339ee6e879e76af0d9f48bf72563  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.02 Ether0.000081269
0xd462449b40cd3fddbd5761f5443479b33b1500b79f586f966001783019182ae8280 days 17 hrs ago0x36cf6d040dd05558560b1afb6cea09f2ecd85f61  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.2 Ether0.00006584
0xecf2e041618c0044477cadeb05e6f82f666671f55c70d53d10e6d663d8edb161280 days 17 hrs ago0xdfbdce7794dada452597e9fe77807fadd4b086d5  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.02 Ether0.00006584
0xcb41e7818a9ea1a3b48d49e5c51082ecfdccb98222b1236799294a08473ef542280 days 17 hrs ago0x5066f9f92a47c32fabeab234d3b21a1e76173787  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.3 Ether0.00072424
0xbff9c125acc76b8ae12a36f37c25030ea7e47cf08ffae2c8509f30861ab258b1280 days 17 hrs ago0x90c8f53cd60beda4481d253f014eb2f05e059d53  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.03 Ether0.00138264
0x022515d5b71d75b06f226ffc278b17bdc20ebd86e8e06756d1387138a2c51efb280 days 17 hrs ago0x7fdaaed472656257479ebf98549ed5a14526ba5c  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.01 Ether0.00006584
0xb1272e4c35b43376b11e48fcd228f0a0084a77cdb5ff0403a9e8deea9dc469c0281 days 36 mins ago0x6ff6f6bf722010e985820fa75bd4b0733bd640b5  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.01 Ether0.000081269
0x4f87430c37676b1638cf15ff999b744fe6a46cdb70a3406c777306a52a9d184a281 days 37 mins ago0x7fdaaed472656257479ebf98549ed5a14526ba5c  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.178888 Ether0.00026336
0x9b62d2d87f7898c09fdfee0d95df46bcea2b5c57af7fca5e10517cbdd50ded59281 days 37 mins ago0x5066f9f92a47c32fabeab234d3b21a1e76173787  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.2 Ether0.0003292
0x70eaeaedba1eb69afc864211b1afc26830d30aaa9923b3c3517b7d649832492c281 days 1 hr ago0xd190fe1945a6a37e10e5d579274df40be04b02c5  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.09 Ether0.003292
0x791539befecc48961b563dec62d6ab56e5fd48b7aef7696588cd572903594210281 days 1 hr ago0xd190fe1945a6a37e10e5d579274df40be04b02c5  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.1 Ether0.003292
0xeeaf934b2c6fbacef5a8f5d6a51e00fc463a66ee7ed87014e7586c606d46818d281 days 1 hr ago0xd190fe1945a6a37e10e5d579274df40be04b02c5  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.3 Ether0.003292
0x80a7b953cc250f9025a61c7f858a6c5858e1f51508475a6d7b8f680d82c330d7281 days 2 hrs ago0xd190fe1945a6a37e10e5d579274df40be04b02c5  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.05 Ether0.003292
0x677655fe8cf0f60eeb5bc5f680e92cd8e7ce4c793bd3b99b6d570ec5d47cf873281 days 2 hrs ago0xd190fe1945a6a37e10e5d579274df40be04b02c5  IN   0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.1 Ether0.004042
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 12 Internal Transactions

ParentTxHash Block Age From To Value
0x28c91fd5b859471d09e283fc556b14024b9f615af70354facceba283860552e95567786257 days 15 hrs ago0xa33c4a314faa9684eeffa6ba334688001ea99bbc0x727bf9c90e94759765e56772bd0b34ca79801b495.28 Ether
0x3883d4f896935a7bbc7ff494b62fc8e06b9baef4aaf19b22f55ea7fb3ab467735430418281 days 8 hrs ago0x31a240648e2baf4f9f17225987f6f53fceb1699a0xa33c4a314faa9684eeffa6ba334688001ea99bbc0.000000007777777777 Ether
0xa8b4101093f46252b0c0617e9995ce5136b49b209b121e4151414759caa27f935190862321 days 14 hrs ago0x9a73386555c262b950eaa6ffbc4c8e8fadc39ac00xa33c4a314faa9684eeffa6ba334688001ea99bbc2 Ether
0x78d9b02354e0a37e3f03a8323169736ee9569b63d4935e8049a99778ff5e0d495077168340 days 20 hrs ago0xa33c4a314faa9684eeffa6ba334688001ea99bbc0xb5ccf95537eb6e14706cc900f90726f5c96a1c3e4.1 Ether
0xfc4c630954cc0105a03fb23ab576568ca383a39a7a1c1c8b89c82707b3a1f0115076724340 days 22 hrs ago0xa33c4a314faa9684eeffa6ba334688001ea99bbc0x36cf6d040dd05558560b1afb6cea09f2ecd85f614.16 Ether
0x8441840314090adaafccbae92b873c35d3f12a00197524f881f213372aa480035076719340 days 22 hrs ago0xa33c4a314faa9684eeffa6ba334688001ea99bbc0xdfbdce7794dada452597e9fe77807fadd4b086d54.36 Ether
0xac312293f31f210239e11c4e3f4a0fffc302a816ae7672db0787c9b82377967c5076710340 days 22 hrs ago0xa33c4a314faa9684eeffa6ba334688001ea99bbc0x5066f9f92a47c32fabeab234d3b21a1e761737874.96 Ether
0x4a86ce7fefcf76390edb729a12dd5f94396c96282de2d4cfa008e9979b0ae5e05076701340 days 22 hrs ago0xa33c4a314faa9684eeffa6ba334688001ea99bbc0x90c8f53cd60beda4481d253f014eb2f05e059d534.4 Ether
0xa206ac188141b27fac39b7faae3da69b63036dae258cd44a171c06617ae952815076699340 days 22 hrs ago0xa33c4a314faa9684eeffa6ba334688001ea99bbc0xd190fe1945a6a37e10e5d579274df40be04b02c533.36 Ether
0xcd88f26679025acbc72317624563ba532f139bad0b7c79de13386b8f0691d5ba5076689340 days 22 hrs ago0xa33c4a314faa9684eeffa6ba334688001ea99bbc0x7fdaaed472656257479ebf98549ed5a14526ba5c6.2 Ether
0xefd69d3122caf7c230eb1e6d0bfa9fcc18334a9a785ebaf15d531168d724e4715076687340 days 22 hrs ago0xa33c4a314faa9684eeffa6ba334688001ea99bbc0xcb04cc70cc95c5f199cec61e6853b29923fbe50633.2 Ether
0xeea40636f2af16e8c5a61a90d581140aa4d7b14115beab3def581936d1de907f5076681340 days 22 hrs ago0xa33c4a314faa9684eeffa6ba334688001ea99bbc0x5d395ecbb09665592150b0821b3b65b1585d432299.98 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: Phoenix
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;

contract Phoenix {
    // If round last more than a year - cancel is activated
    uint private MAX_ROUND_TIME = 365 days;
    
    uint private totalCollected;
    uint private currentRound;
    uint private currentRoundCollected;
    uint private prevLimit;
    uint private currentLimit;
    uint private currentRoundStartTime;

    // That structure describes current user Account    
    // moneyNew - invested money in currentRound
    // moneyHidden - invested in previous round and not profit yet
    // profitTotal - total profit of user account (it never decreases)
    // profitTaken - profit taken by user
    // lastUserUpdateRound - last round when account was updated
    struct Account {
        uint moneyNew;
        uint moneyHidden;
        uint profitTotal;
        uint profitTaken;

        uint lastUserUpdateRound;
    }
    
    mapping (address => Account) private accounts;


    function Phoenix() public {
        totalCollected = 0;
        currentRound = 0;
        currentRoundCollected = 0;
        prevLimit = 0;
        currentLimit = 100e18;
        currentRoundStartTime = block.timestamp;
    }
    
    // This function increments round to next:
    // - it sets new currentLimit (round)using sequence:
    //      100e18, 200e18, 4 * currentLImit - 2 * prevLimit
    function iterateToNextRound() private {
        currentRound++;
        uint tempcurrentLimit = currentLimit;
        
        if(currentRound == 1) {
            currentLimit = 200e18;
        }
        else {
            currentLimit = 4 * currentLimit - 2 * prevLimit;
        }
        
        prevLimit = tempcurrentLimit;
        currentRoundStartTime = block.timestamp;
        currentRoundCollected = 0;
    }
    
    // That function calculates profit update for user
    // - if increments from last calculated round to current round and 
    //   calculates current user Account state
    // - algorithm:
    function calculateUpdateProfit(address user) private view returns (Account) {
        Account memory acc = accounts[user];
        
        for(uint r = acc.lastUserUpdateRound; r < currentRound; r++) {
            acc.profitTotal *= 2;

            if(acc.moneyHidden > 0) {
                acc.profitTotal += acc.moneyHidden * 2;
                acc.moneyHidden = 0;
            }
            
            if(acc.moneyNew > 0) {
                acc.moneyHidden = acc.moneyNew;
                acc.moneyNew = 0;
            }
        }
        
        acc.lastUserUpdateRound = currentRound;
        return acc;
    }
    
    // Here we calculate profit and update it for user
    function updateProfit(address user) private returns(Account) {
        Account memory acc = calculateUpdateProfit(user);
        accounts[user] = acc;
        return acc;
    }

    // That function returns canceled status.
    // If round lasts for more than 1 year - cancel mode is on
    function canceled() public view returns(bool isCanceled) {
        return block.timestamp >= (currentRoundStartTime + MAX_ROUND_TIME);
    }
    
    // Fallback function for handling money sending directly to contract
    function () public payable {
        require(!canceled());
        deposit();
    }

    // Function for calculating and updating state during user money investment
    // - first of all we update current user state using updateProfit function
    // - after that we handle situation of investment that makes 
    //   currentRoundCollected more than current round limit. If that happen, 
    //   we set moneyNew to totalMoney - moneyPartForCrossingRoundLimit.
    // - check crossing round limit in cycle for case when money invested are 
    //   more than several round limit
    function deposit() public payable {
        require(!canceled());
        
        updateProfit(msg.sender);

        uint money2add = msg.value;
        totalCollected += msg.value;
        while(currentRoundCollected + money2add >= currentLimit) {
            accounts[msg.sender].moneyNew += currentLimit - 
                currentRoundCollected;
            money2add -= currentLimit - currentRoundCollected;

            iterateToNextRound();
            updateProfit(msg.sender);
        }
        
        accounts[msg.sender].moneyNew += money2add;
        currentRoundCollected += money2add;
    }
    
    // Returns common information about round
    // totalCollectedSum - total sum, collected in all rounds
    // roundCollected - sum collected in current round
    // currentRoundNumber - current round number
    // remainsCurrentRound - how much remains for round change
    function whatRound() public view returns (uint totalCollectedSum, 
            uint roundCollected, uint currentRoundNumber, 
            uint remainsCurrentRound) {
        return (totalCollected, currentRoundCollected, currentRound, 
            currentLimit - currentRoundCollected);
    }

    // Returns current user account state
    // profitTotal - how much profit is collected during all rounds
    // profitTaken - how much profit was taken by user during all rounds
    // profitAvailable (= profitTotal - profitTaken) - how much profit can be 
    //    taken by user
    // investmentInProgress - how much money are not profit yet and are invested
    //    in current or previous round
    function myAccount() public view returns (uint profitTotal, 
            uint profitTaken, uint profitAvailable, uint investmentInProgress) {
        var acc = calculateUpdateProfit(msg.sender);
        return (acc.profitTotal, acc.profitTaken, 
                acc.profitTotal - acc.profitTaken, 
                acc.moneyNew + acc.moneyHidden);
    }

    // That function handles cancel state. In that case:
    // - transfer all invested money in current round
    // - transfer all user profit except money taken
    // - remainder of 100 ETH is left after returning all invested in current
    //      round and all profit. Transfer it to users that invest money in 
    //      previous round. Total investment in previous round = prevLimit.
    //      So percent of money return = 100 ETH / prevLimit
    function payback() private {
        require(canceled());

        var acc = accounts[msg.sender];
        uint hiddenpart = 0;
        if(prevLimit > 0) {
            hiddenpart = (acc.moneyHidden * 100e18) / prevLimit;
        }
        uint money2send = acc.moneyNew + acc.profitTotal - acc.profitTaken + 
            hiddenpart;
        if(money2send > this.balance) {
            money2send = this.balance;
        }
        acc.moneyNew = 0;
        acc.moneyHidden = 0;
        acc.profitTaken = acc.profitTotal;

        msg.sender.transfer(money2send);
    }

    // Function for taking all profit
    // If round is canceled than do a payback (see above)
    // Calculate money left on account = (profitTotal - profitTaken)
    // Increase profitTaken by money left on account
    // Transfer money to user
    function takeProfit() public {
        Account memory acc = updateProfit(msg.sender);

        if(canceled()) {
            payback();
            return;
        }

        uint money2send = acc.profitTotal - acc.profitTaken;
        acc.profitTaken += money2send;
        accounts[msg.sender] = acc;

        if(money2send > 0) {
            msg.sender.transfer(money2send);
        }
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"whatRound","outputs":[{"name":"totalCollectedSum","type":"uint256"},{"name":"roundCollected","type":"uint256"},{"name":"currentRoundNumber","type":"uint256"},{"name":"remainsCurrentRound","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"canceled","outputs":[{"name":"isCanceled","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"takeProfit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myAccount","outputs":[{"name":"profitTotal","type":"uint256"},{"name":"profitTaken","type":"uint256"},{"name":"profitAvailable","type":"uint256"},{"name":"investmentInProgress","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

  Contract Creation Code Switch To Opcodes View
60606040526301e13380600055341561001757600080fd5b600060018190555060006002819055506000600381905550600060048190555068056bc75e2d63100000600581905550426006819055506107c38061005d6000396000f30060606040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063032fc13b1461008b5780633f9942ff146100c957806370c10578146100f6578063b29c62f41461010b578063d0e30db014610149575b610075610153565b15151561008157600080fd5b610089610163565b005b341561009657600080fd5b61009e610281565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34156100d457600080fd5b6100dc610153565b604051808215151515815260200191505060405180910390f35b341561010157600080fd5b6101096102a5565b005b341561011657600080fd5b61011e6103b5565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b610151610163565b005b6000805460065401421015905090565b600061016d610153565b15151561017957600080fd5b610182336103fd565b50349050346001600082825401925050819055505b600554816003540110151561021e5760035460055403600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282540192505081905550600354600554038103905061020f610496565b610218336103fd565b50610197565b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055508060036000828254019250508190555050565b60008060008060015460035460025460035460055403935093509350935090919293565b6102ad610767565b60006102b8336103fd565b91506102c2610153565b156102d4576102cf6104fc565b6103b1565b816060015182604001510390508082606001818151019150818152505081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505060008111156103b0573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156103af57600080fd5b5b5b5050565b6000806000806103c3610767565b6103cc33610639565b9050806040015181606001518260600151836040015103836020015184600001510194509450945094505090919293565b610405610767565b61040d610767565b61041683610639565b905080600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505080915050919050565b60006002600081548092919060010191905055506005549050600160025414156104cf57680ad78ebc5ac62000006005819055506104e3565b600454600202600554600402036005819055505b8060048190555042600681905550600060038190555050565b6000806000610509610153565b151561051457600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925060009150600060045411156105845760045468056bc75e2d6310000084600101540281151561058057fe5b0491505b8183600301548460020154856000015401030190503073ffffffffffffffffffffffffffffffffffffffff16318111156105d3573073ffffffffffffffffffffffffffffffffffffffff163190505b6000836000018190555060008360010181905550826002015483600301819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561063457600080fd5b505050565b610641610767565b610649610767565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060a06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250509150816080015190505b60025481101561075157600282604001818151029150818152505060008260200151111561071d57600282602001510282604001818151019150818152505060008260200181815250505b60008260000151111561074457816000015182602001818152505060008260000181815250505b80806001019150506106d2565b6002548260800181815250508192505050919050565b60a060405190810160405280600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a72305820e1cadde3cb22332c066f91cbccfa733eab396516183c626699e728ec53f08c490029

   Swarm Source:
bzzr://e1cadde3cb22332c066f91cbccfa733eab396516183c626699e728ec53f08c49

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.