ETH Price: $2,281.11 (-5.43%)

Transaction Decoder

Block:
15162292 at Jul-17-2022 08:33:52 PM +UTC
Transaction Fee:
0.001776899941890821 ETH $4.05
Gas Used:
71,347 Gas / 24.905040743 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x0F0Ad981...dFa4ec2c1 0.024334299679222145 Eth0.124334299679222145 Eth0.1
0x3BEF3ce0...Ff2F5c3b1 0.025391003690838602 Eth0.125391003690838602 Eth0.1
(MiningPoolHub)
2,926.06930075835424312 Eth2,926.06944345235424312 Eth0.000142694
0x61598e8f...2A3B80E6c 0.000307664788683 Eth0.100307664788683 Eth0.1
0x9319b514...ca4780242 0.005277254841043573 Eth0.105277254841043573 Eth0.1
0xB73925c5...45ab6c28A
1.231997984599765896 Eth
Nonce: 156
0.730221084657875075 Eth
Nonce: 157
0.501776899941890821
0xC78d3cE5...Db30f0331 0.000597507527253 Eth0.100597507527253 Eth0.1

Execution Trace

ETH 0.5 AstraDispenser.dispense( recipients=[0x9319b5146E8CD4BCa305984b040F27Dca4780242, 0x0F0Ad98103841F21C2864549af084E4dFa4ec2c1, 0x3BEF3ce02262A877c204D7AA0fa7e8bFf2F5c3b1, 0xC78d3cE528afABde044b8363Ca7A8B7Db30f0331, 0x61598e8f6D00347589056a2032F50442A3B80E6c] )
  • ETH 0.1 0x9319b5146e8cd4bca305984b040f27dca4780242.CALL( )
  • ETH 0.1 0x0f0ad98103841f21c2864549af084e4dfa4ec2c1.CALL( )
  • ETH 0.1 0x3bef3ce02262a877c204d7aa0fa7e8bff2f5c3b1.CALL( )
  • ETH 0.1 0xc78d3ce528afabde044b8363ca7a8b7db30f0331.CALL( )
  • ETH 0.1 0x61598e8f6d00347589056a2032f50442a3b80e6c.CALL( )
    // SPDX-License-Identifier: Unlicense
    pragma solidity ^0.8.11;
    contract AstraDispenser {
        function dispense(address payable[] memory recipients) external payable {
            assembly {
                let len := mload(recipients)
                let amount_per := div(callvalue(), len)
                
                let data := add(recipients, 0x20)
                for
                    { let end := add(data, mul(len, 0x20)) }
                    lt(data, end)
                    { data := add(data, 0x20) }
                {
                    pop(call(
                        21000,
                        mload(data),
                        amount_per,
                        0,
                        0,
                        0,
                        0
                    ))
                }
                // Check if there is any leftover funds
                let leftover := selfbalance()
                if eq(leftover, 0) {
                    return(0, 0)
                }
                pop(call(
                    21000,
                    caller(),
                    leftover,
                    0,
                    0,
                    0,
                    0
                ))
            }
        }
    }