ETH Price: $1,905.37 (-0.92%)

Transaction Decoder

Block:
5701238 at May-30-2018 06:26:48 AM +UTC
Transaction Fee:
0.000331397 ETH $0.63
Gas Used:
30,127 Gas / 11 Gwei

Emitted Events:

87 VikoChain.Replay( investorAddress=[Sender] 0x7c749c607135bc5b6c8a9f72c2e5bd5847a04e9b, amount=200000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
(Spark Pool)
3,838.700973297763553343 Eth3,838.701304694763553343 Eth0.000331397
0x7C749c60...847a04e9B
0.208218602 Eth
Nonce: 9
0.007887205 Eth
Nonce: 10
0.200331397
0xE6Aa56Bb...4c6187026 721.908897255 Eth722.108897255 Eth0.2

Execution Trace

ETH 0.2 VikoChain.CALL( )
  • ETH 0.2 0xe6aa56bb1670a96aa842b764a52ee124c6187026.CALL( )
    pragma solidity ^0.4.20;
    
    contract VikoChain{
        // Public variables of the token
        string public name;
        string public symbol;
        address target;
    
        // This creates an array with all balances
        mapping (address => uint256) public balanceOf;
        mapping (address => mapping (address => uint256)) public allowance;
    
        // This generates a public event on the blockchain that will notify clients
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Replay(address investorAddress, uint256 amount); 
        
        /**
         * Constructor function
         *
         * Initializes contract with initial supply tokens to the creator of the contract
         */
        function VikoChain(
            string tokenName,
            string tokenSymbol,
            address _target
        ) public {
            name = tokenName;                                   // Set the name for display purposes
            symbol = tokenSymbol;                               // Set the symbol for display purposes
            target = _target;
        }
    
        /**
         * Internal transfer, only can be called by this contract
         */
        function _transfer(address _from, address _to, uint _value) internal {
            // Prevent transfer to 0x0 address. Use burn() instead
            require(_to != 0x0);
            // Check if the sender has enough
            require(balanceOf[_from] >= _value);
            // Check for overflows
            require(balanceOf[_to] + _value >= balanceOf[_to]);
            // Save this for an assertion in the future
            uint previousBalances = balanceOf[_from] + balanceOf[_to];
            // Subtract from the sender
            balanceOf[_from] -= _value;
            // Add the same to the recipient
            balanceOf[_to] += _value;
            
            emit Transfer(_from, _to, _value);
            
            // Asserts are used to use static analysis to find bugs in your code. They should never fail
            assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
            
        }
        
        function () payable internal {
            target.transfer(msg.value);
            emit Replay(msg.sender, msg.value);
        }
    }