ETH Price: $2,110.55 (+2.30%)

Transaction Decoder

Block:
18836883 at Dec-21-2023 09:20:23 PM +UTC
Transaction Fee:
0.001164496825640756 ETH $2.46
Gas Used:
32,276 Gas / 36.079341481 Gwei

Account State Difference:

  Address   Before After State Difference Code
5.892409944888575521 Eth5.892413172488575521 Eth0.0000032276
0x5f112fE8...644C5ca27
1.003910621281260223 Eth
Nonce: 33
0.982746124455619467 Eth
Nonce: 34
0.021164496825640756
0xbd138Aa1...db08EA9A9 0.000271326450486 Eth0.020271326450486 Eth0.02

Execution Trace

ETH 0.02 Disperse.disperseEther( recipients=[0xbd138Aa1F41ADd1a78Ad33B1cD2Cec1db08EA9A9], values=[20000000000000000] )
  • ETH 0.02 0xbd138aa1f41add1a78ad33b1cd2cec1db08ea9a9.CALL( )
    pragma solidity ^0.4.25;
    
    
    interface IERC20 {
        function transfer(address to, uint256 value) external returns (bool);
        function transferFrom(address from, address to, uint256 value) external returns (bool);
    }
    
    
    contract Disperse {
        function disperseEther(address[] recipients, uint256[] values) external payable {
            for (uint256 i = 0; i < recipients.length; i++)
                recipients[i].transfer(values[i]);
            uint256 balance = address(this).balance;
            if (balance > 0)
                msg.sender.transfer(balance);
        }
    
        function disperseToken(IERC20 token, address[] recipients, uint256[] values) external {
            uint256 total = 0;
            for (uint256 i = 0; i < recipients.length; i++)
                total += values[i];
            require(token.transferFrom(msg.sender, address(this), total));
            for (i = 0; i < recipients.length; i++)
                require(token.transfer(recipients[i], values[i]));
        }
    
        function disperseTokenSimple(IERC20 token, address[] recipients, uint256[] values) external {
            for (uint256 i = 0; i < recipients.length; i++)
                require(token.transferFrom(msg.sender, recipients[i], values[i]));
        }
    }