ETH Price: $2,190.24 (-5.63%)
Gas: 0.21 Gwei

Transaction Decoder

Block:
5390040 at Apr-06-2018 08:13:02 AM +UTC
Transaction Fee:
0.000167855 ETH $0.37
Gas Used:
33,571 Gas / 5 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x167A9333...191aa6476
(Coinone 1)
108,216.146104140089501059 Eth108,217.147598759540537559 Eth1.0014946194510365
0x29dEB07c...2DdDa23D5
1.016494619451036557 Eth
Nonce: 224
0.014832145000000057 Eth
Nonce: 225
1.0016624744510365
(F2Pool Old)
1,638.822412504841498785 Eth1,638.822580359841498785 Eth0.000167855

Execution Trace

ETH 1.0014946194510365 ReplaySafeSplit.split( targetFork=0x167A9333BF582556f35Bd4d16A7E80E191aa6476, targetNoFork=0x571B7b69829CE2568B9BC3d32eaf7405DAb76b21 ) => ( True )
  • AmIOnTheFork.CALL( )
  • ETH 1.0014946194510365 Coinone 1.CALL( )
    File 1 of 2: ReplaySafeSplit
    contract RequiringFunds {
        modifier NeedEth () {
            if (msg.value <= 0 ) throw;
            _
        }
    }
    
    contract AmIOnTheFork {
        function forked() constant returns(bool);
    }
    
    contract ReplaySafeSplit is RequiringFunds {
        //address private constant oracleAddress = 0x8128B12cABc6043d94BD3C4d9B9455077Eb18807;    // testnet
        address private constant oracleAddress = 0x2bd2326c993dfaef84f696526064ff22eba5b362;   // mainnet
        
        // Fork oracle to use
        AmIOnTheFork amIOnTheFork = AmIOnTheFork(oracleAddress);
    
        // Splits the funds into 2 addresses
        function split(address targetFork, address targetNoFork) NeedEth returns(bool) {
            // The 2 checks are to ensure that users provide BOTH addresses
            // and prevent funds to be sent to 0x0 on one fork or the other.
            if (targetFork == 0) throw;
            if (targetNoFork == 0) throw;
    
            if (amIOnTheFork.forked()                   // if we are on the fork 
                && targetFork.send(msg.value)) {        // send the ETH to the targetFork address
                return true;
            } else if (!amIOnTheFork.forked()           // if we are NOT on the fork 
                && targetNoFork.send(msg.value)) {      // send the ETH to the targetNoFork address 
                return true;
            }
    
            throw;                                      // don't accept value transfer, otherwise it would be trapped.
        }
    
        // Reject value transfers.
        function() {
            throw;
        }
    }

    File 2 of 2: AmIOnTheFork
    contract AmIOnTheFork {
        bool public forked = false;
        address constant darkDAO = 0x304a554a310c7e546dfe434669c62820b7d83490;
        // Check the fork condition during creation of the contract.
        // This function should be called between block 1920000 and 1921200.
        // Approximately between 2016-07-20 12:00:00 UTC and 2016-07-20 17:00:00 UTC.
        // After that the status will be locked in.
        function update() {
            if (block.number >= 1920000 && block.number <= 1921200) {
                forked = darkDAO.balance < 3600000 ether;
            }
        }
        function() {
            throw;
        }
    }