ETH Price: $2,064.16 (+3.60%)
 

Overview

ETH Balance

108.780270356465207692 ETH

Eth Value

$224,540.26 (@ $2,064.16/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Take Profit206653412024-09-02 20:41:47203 days ago1725309707IN
0xA33c4A31...01Ea99bBC
0 ETH0.0006303512.94728019
Take Profit206653372024-09-02 20:40:59203 days ago1725309659IN
0xA33c4A31...01Ea99bBC
0 ETH0.0005455811.20618191
Take Profit204327612024-08-01 9:19:59235 days ago1722503999IN
0xA33c4A31...01Ea99bBC
0 ETH0.000274036.22999024
Take Profit203705632024-07-23 16:55:35244 days ago1721753735IN
0xA33c4A31...01Ea99bBC
0 ETH0.0005524512.55983496
Take Profit203705342024-07-23 16:49:47244 days ago1721753387IN
0xA33c4A31...01Ea99bBC
0 ETH0.000360598.1979569
Take Profit203702502024-07-23 15:52:35244 days ago1721749955IN
0xA33c4A31...01Ea99bBC
0 ETH0.000257675.85813007
Take Profit203702302024-07-23 15:48:35244 days ago1721749715IN
0xA33c4A31...01Ea99bBC
0 ETH0.000289916.59109241
Take Profit203700442024-07-23 15:11:23244 days ago1721747483IN
0xA33c4A31...01Ea99bBC
0 ETH0.000336727.65524918
Take Profit203700122024-07-23 15:04:59244 days ago1721747099IN
0xA33c4A31...01Ea99bBC
0 ETH0.000333127.57348829
Take Profit144466652022-03-24 3:47:191096 days ago1648093639IN
0xA33c4A31...01Ea99bBC
0 ETH0.0022970947.181844
Take Profit142569422022-02-22 16:30:421126 days ago1645547442IN
0xA33c4A31...01Ea99bBC
0 ETH0.0048686100
Take Profit137601772021-12-07 18:44:041203 days ago1638902644IN
0xA33c4A31...01Ea99bBC
0 ETH0.0039779290.43614838
Take Profit137600752021-12-07 18:19:341203 days ago1638901174IN
0xA33c4A31...01Ea99bBC
0 ETH0.0024901756.61282347
Take Profit134946822021-10-26 18:50:111245 days ago1635274211IN
0xA33c4A31...01Ea99bBC
0 ETH0.01170749181.72004377
Take Profit122232672021-04-12 5:11:311442 days ago1618204291IN
0xA33c4A31...01Ea99bBC
0 ETH0.002642364
Take Profit120706952021-03-19 17:58:231466 days ago1616176703IN
0xA33c4A31...01Ea99bBC
0 ETH0.00664704161
Transfer120689982021-03-19 11:50:521466 days ago1616154652IN
0xA33c4A31...01Ea99bBC
0 ETH0.002352112
Transfer120689782021-03-19 11:46:451466 days ago1616154405IN
0xA33c4A31...01Ea99bBC
0 ETH0.002877137
Transfer120689672021-03-19 11:44:021466 days ago1616154242IN
0xA33c4A31...01Ea99bBC
0 ETH0.002856136
Transfer120689542021-03-19 11:40:191466 days ago1616154019IN
0xA33c4A31...01Ea99bBC
0 ETH0.002961141
Transfer120689152021-03-19 11:33:161466 days ago1616153596IN
0xA33c4A31...01Ea99bBC
0 ETH0.002415115
Transfer120689152021-03-19 11:33:161466 days ago1616153596IN
0xA33c4A31...01Ea99bBC
0 ETH0.002415115
Transfer120688532021-03-19 11:22:131466 days ago1616152933IN
0xA33c4A31...01Ea99bBC
0 ETH0.002961141
Take Profit116920252021-01-20 11:29:591524 days ago1611142199IN
0xA33c4A31...01Ea99bBC
0 ETH0.0036308880
Take Profit116918782021-01-20 11:00:401524 days ago1611140440IN
0xA33c4A31...01Ea99bBC
0 ETH0.0033028880
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer206653412024-09-02 20:41:47203 days ago1725309707
0xA33c4A31...01Ea99bBC
0.234 ETH
Transfer206653372024-09-02 20:40:59203 days ago1725309659
0xA33c4A31...01Ea99bBC
0.01 ETH
-144466652022-03-24 3:47:191096 days ago1648093639
0xA33c4A31...01Ea99bBC
1 ETH
-142569422022-02-22 16:30:421126 days ago1645547442
0xA33c4A31...01Ea99bBC
10.982047 ETH
-122232672021-04-12 5:11:311442 days ago1618204291
0xA33c4A31...01Ea99bBC
0.3 ETH
-120706952021-03-19 17:58:231466 days ago1616176703
0xA33c4A31...01Ea99bBC
4 ETH
-116918782021-01-20 11:00:401524 days ago1611140440
0xA33c4A31...01Ea99bBC
15.64547922 ETH
-116877602021-01-19 19:52:501525 days ago1611085970
0xA33c4A31...01Ea99bBC
79.501 ETH
-116862422021-01-19 14:21:481525 days ago1611066108
0xA33c4A31...01Ea99bBC
11.38 ETH
-73362942019-03-09 17:17:512207 days ago1552151871
0xA33c4A31...01Ea99bBC
1.12999999 ETH
-72967362019-03-03 13:06:552213 days ago1551618415
0xA33c4A31...01Ea99bBC
1.086 ETH
-72752872019-02-27 17:11:482217 days ago1551287508
0xA33c4A31...01Ea99bBC
0.24988888 ETH
-72752792019-02-27 17:09:562217 days ago1551287396
0xA33c4A31...01Ea99bBC
0.02 ETH
-72752332019-02-27 16:54:382217 days ago1551286478
0xA33c4A31...01Ea99bBC
0.0225 ETH
-72752282019-02-27 16:53:062217 days ago1551286386
0xA33c4A31...01Ea99bBC
1.04 ETH
-72752282019-02-27 16:53:062217 days ago1551286386
0xA33c4A31...01Ea99bBC
0.345 ETH
-72752282019-02-27 16:53:062217 days ago1551286386
0xA33c4A31...01Ea99bBC
0.66 ETH
-72752212019-02-27 16:50:482217 days ago1551286248
0xA33c4A31...01Ea99bBC
10.008888 ETH
-72751992019-02-27 16:43:462217 days ago1551285826
0xA33c4A31...01Ea99bBC
0.0135 ETH
-72751822019-02-27 16:37:212217 days ago1551285441
0xA33c4A31...01Ea99bBC
1.595 ETH
-72751582019-02-27 16:28:402217 days ago1551284920
0xA33c4A31...01Ea99bBC
1.38 ETH
-72751532019-02-27 16:26:582217 days ago1551284818
0xA33c4A31...01Ea99bBC
3.945 ETH
-72751432019-02-27 16:24:482217 days ago1551284688
0xA33c4A31...01Ea99bBC
1.24 ETH
-72751382019-02-27 16:22:352217 days ago1551284555
0xA33c4A31...01Ea99bBC
0.245 ETH
-72751272019-02-27 16:18:002217 days ago1551284280
0xA33c4A31...01Ea99bBC
4.2 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Phoenix

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-02-12
*/

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 Security Audit

Contract ABI

API
[{"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"}]

60606040526301e13380600055341561001757600080fd5b600060018190555060006002819055506000600381905550600060048190555068056bc75e2d63100000600581905550426006819055506107c38061005d6000396000f30060606040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063032fc13b1461008b5780633f9942ff146100c957806370c10578146100f6578063b29c62f41461010b578063d0e30db014610149575b610075610153565b15151561008157600080fd5b610089610163565b005b341561009657600080fd5b61009e610281565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34156100d457600080fd5b6100dc610153565b604051808215151515815260200191505060405180910390f35b341561010157600080fd5b6101096102a5565b005b341561011657600080fd5b61011e6103b5565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b610151610163565b005b6000805460065401421015905090565b600061016d610153565b15151561017957600080fd5b610182336103fd565b50349050346001600082825401925050819055505b600554816003540110151561021e5760035460055403600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282540192505081905550600354600554038103905061020f610496565b610218336103fd565b50610197565b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055508060036000828254019250508190555050565b60008060008060015460035460025460035460055403935093509350935090919293565b6102ad610767565b60006102b8336103fd565b91506102c2610153565b156102d4576102cf6104fc565b6103b1565b816060015182604001510390508082606001818151019150818152505081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505060008111156103b0573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156103af57600080fd5b5b5b5050565b6000806000806103c3610767565b6103cc33610639565b9050806040015181606001518260600151836040015103836020015184600001510194509450945094505090919293565b610405610767565b61040d610767565b61041683610639565b905080600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505080915050919050565b60006002600081548092919060010191905055506005549050600160025414156104cf57680ad78ebc5ac62000006005819055506104e3565b600454600202600554600402036005819055505b8060048190555042600681905550600060038190555050565b6000806000610509610153565b151561051457600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925060009150600060045411156105845760045468056bc75e2d6310000084600101540281151561058057fe5b0491505b8183600301548460020154856000015401030190503073ffffffffffffffffffffffffffffffffffffffff16318111156105d3573073ffffffffffffffffffffffffffffffffffffffff163190505b6000836000018190555060008360010181905550826002015483600301819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561063457600080fd5b505050565b610641610767565b610649610767565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060a06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250509150816080015190505b60025481101561075157600282604001818151029150818152505060008260200151111561071d57600282602001510282604001818151019150818152505060008260200181815250505b60008260000151111561074457816000015182602001818152505060008260000181815250505b80806001019150506106d2565b6002548260800181815250508192505050919050565b60a060405190810160405280600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a72305820e1cadde3cb22332c066f91cbccfa733eab396516183c626699e728ec53f08c490029

Deployed Bytecode

0x60606040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063032fc13b1461008b5780633f9942ff146100c957806370c10578146100f6578063b29c62f41461010b578063d0e30db014610149575b610075610153565b15151561008157600080fd5b610089610163565b005b341561009657600080fd5b61009e610281565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34156100d457600080fd5b6100dc610153565b604051808215151515815260200191505060405180910390f35b341561010157600080fd5b6101096102a5565b005b341561011657600080fd5b61011e6103b5565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b610151610163565b005b6000805460065401421015905090565b600061016d610153565b15151561017957600080fd5b610182336103fd565b50349050346001600082825401925050819055505b600554816003540110151561021e5760035460055403600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282540192505081905550600354600554038103905061020f610496565b610218336103fd565b50610197565b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055508060036000828254019250508190555050565b60008060008060015460035460025460035460055403935093509350935090919293565b6102ad610767565b60006102b8336103fd565b91506102c2610153565b156102d4576102cf6104fc565b6103b1565b816060015182604001510390508082606001818151019150818152505081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505060008111156103b0573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156103af57600080fd5b5b5b5050565b6000806000806103c3610767565b6103cc33610639565b9050806040015181606001518260600151836040015103836020015184600001510194509450945094505090919293565b610405610767565b61040d610767565b61041683610639565b905080600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505080915050919050565b60006002600081548092919060010191905055506005549050600160025414156104cf57680ad78ebc5ac62000006005819055506104e3565b600454600202600554600402036005819055505b8060048190555042600681905550600060038190555050565b6000806000610509610153565b151561051457600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925060009150600060045411156105845760045468056bc75e2d6310000084600101540281151561058057fe5b0491505b8183600301548460020154856000015401030190503073ffffffffffffffffffffffffffffffffffffffff16318111156105d3573073ffffffffffffffffffffffffffffffffffffffff163190505b6000836000018190555060008360010181905550826002015483600301819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561063457600080fd5b505050565b610641610767565b610649610767565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060a06040519081016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250509150816080015190505b60025481101561075157600282604001818151029150818152505060008260200151111561071d57600282602001510282604001818151019150818152505060008260200181815250505b60008260000151111561074457816000015182602001818152505060008260000181815250505b80806001019150506106d2565b6002548260800181815250508192505050919050565b60a060405190810160405280600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a72305820e1cadde3cb22332c066f91cbccfa733eab396516183c626699e728ec53f08c490029

Swarm Source

bzzr://e1cadde3cb22332c066f91cbccfa733eab396516183c626699e728ec53f08c49

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.