ETH Price: $1,899.52 (-0.89%)

Transaction Decoder

Block:
17039836 at Apr-13-2023 05:12:23 PM +UTC
Transaction Fee:
0.00482431023474642 ETH $9.16
Gas Used:
102,588 Gas / 47.026067715 Gwei

Account State Difference:

  Address   Before After State Difference Code
2.745184392715211009 Eth2.745211065595211009 Eth0.00002667288
0x4E12A2ba...7529fBbCD
0.073232661516696282 Eth
Nonce: 2
0.023408351281949862 Eth
Nonce: 3
0.04982431023474642
0x7b9ED788...0563e306f
0 Eth
Nonce: 0
0.015 Eth
Nonce: 0
0.015From: 0 To: 0
0x8AD08352...B57Ba4D27 0.000480918762129782 Eth0.015480918762129782 Eth0.015
0xbf7a66F0...fF0d8b38e
0 Eth
Nonce: 0
0.015 Eth
Nonce: 0
0.015From: 0 To: 0

Execution Trace

ETH 0.045 Disperse.disperseEther( recipients=[0x8AD083521cA7167A2255E10fD760eC1B57Ba4D27, 0x7b9ED788EB724DbA5Aa55a8d57D88DD0563e306f, 0xbf7a66F0E3B91D05d3C5F4B9aAE7CAEfF0d8b38e], values=[15000000000000000, 15000000000000000, 15000000000000000] )
  • ETH 0.015 0x8ad083521ca7167a2255e10fd760ec1b57ba4d27.CALL( )
  • ETH 0.015 0x7b9ed788eb724dba5aa55a8d57d88dd0563e306f.CALL( )
  • ETH 0.015 0xbf7a66f0e3b91d05d3c5f4b9aae7caeff0d8b38e.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]));
        }
    }