ETH Price: $2,404.07 (+6.63%)

Transaction Decoder

Block:
18877989 at Dec-27-2023 03:48:47 PM +UTC
Transaction Fee:
0.010675908 ETH $25.67
Gas Used:
197,702 Gas / 54 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x02034843...f55885c9f 0 Eth0.01377 Eth0.01377
0x07A1f670...7232e2DEa 0 Eth0.01377 Eth0.01377
0x0E81Cc0a...f0DEd4758 0 Eth0.01377 Eth0.01377
0x1689a089...2f8702000
(WhiteBIT 2)
19.140608052305006042 Eth
Nonce: 175571
18.895842144305006042 Eth
Nonce: 175572
0.244765908
0x1d050866...79678595d 0 Eth0.01377 Eth0.01377
0x267c28aa...F97f8E778 0 Eth0.01377 Eth0.01377
0x31515578...945C3EdaF 0 Eth0.01377 Eth0.01377
0x4DDd12dA...128543308 0 Eth0.01377 Eth0.01377
0x587c86Df...11284482C 0 Eth0.01377 Eth0.01377
0x606624af...633320289 0 Eth0.01377 Eth0.01377
0x82Ea8A5F...7F4A517Bb 0 Eth0.01377 Eth0.01377
(beaverbuild)
17.366812944363236934 Eth17.367081636889970324 Eth0.00026869252673339
0xaF304f0A...f8758D8bD 0 Eth0.01377 Eth0.01377
0xb6608b6a...325f5311c 0 Eth0.01377 Eth0.01377
0xCf85B14a...395853Dd7 0 Eth0.01377 Eth0.01377
0xDbbA4A88...5f13D19e3 0 Eth0.01377 Eth0.01377
0xF28430D9...19253EaA5 0 Eth0.01377 Eth0.01377
0xF76cfA11...7302FFE69 0 Eth0.01377 Eth0.01377
0xfB3Ea830...5fFfAAef4 0 Eth0.01377 Eth0.01377

Execution Trace

ETH 0.23409 BulkSender.distribute( addresses=[0xDbbA4A8877f8C19cD2eA7137FbE35B35f13D19e3, 0x606624af5027D0EBedbDe5a6Aa4D66C633320289, 0x587c86Df4eb186EFa540631faCB363811284482C, 0x315155784A2e3d1AccedaD6ABb3eC3f945C3EdaF, 0x82Ea8A5F5C60973869BDdA32C2F48Ad7F4A517Bb, 0x07A1f6708116BB35589D67d729d3A9f7232e2DEa, 0x0E81Cc0a7433C58725C025b360F01b1f0DEd4758, 0x1d05086666CaC07B60c003F850927b479678595d, 0xfB3Ea830a2DD85f4331d1afe18B189A5fFfAAef4, 0x4DDd12dA79A159cAcBE25CA06157b37128543308, 0xF28430D9FB65D490B4D9306536c19fE19253EaA5, 0xCf85B14aC2987a92D3dbab24A694923395853Dd7, 0xb6608b6a9947ac0673F83C4C8EF72b1325f5311c, 0x267c28aa6C1140b4211De5043E543f2F97f8E778, 0xF76cfA1117D4Ce98839c68275752Af47302FFE69, 0xaF304f0A4d73A37E844f1E0E902EEeCf8758D8bD, 0x020348439454b6A6AaD10C7Af8b9904f55885c9f], amounts=[13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000, 13770000000000000] )
  • ETH 0.01377 0xdbba4a8877f8c19cd2ea7137fbe35b35f13d19e3.CALL( )
  • ETH 0.01377 0x606624af5027d0ebedbde5a6aa4d66c633320289.CALL( )
  • ETH 0.01377 0x587c86df4eb186efa540631facb363811284482c.CALL( )
  • ETH 0.01377 0x315155784a2e3d1accedad6abb3ec3f945c3edaf.CALL( )
  • ETH 0.01377 0x82ea8a5f5c60973869bdda32c2f48ad7f4a517bb.CALL( )
  • ETH 0.01377 0x07a1f6708116bb35589d67d729d3a9f7232e2dea.CALL( )
  • ETH 0.01377 0x0e81cc0a7433c58725c025b360f01b1f0ded4758.CALL( )
  • ETH 0.01377 0x1d05086666cac07b60c003f850927b479678595d.CALL( )
  • ETH 0.01377 0xfb3ea830a2dd85f4331d1afe18b189a5fffaaef4.CALL( )
  • ETH 0.01377 0x4ddd12da79a159cacbe25ca06157b37128543308.CALL( )
  • ETH 0.01377 0xf28430d9fb65d490b4d9306536c19fe19253eaa5.CALL( )
  • ETH 0.01377 0xcf85b14ac2987a92d3dbab24a694923395853dd7.CALL( )
  • ETH 0.01377 0xb6608b6a9947ac0673f83c4c8ef72b1325f5311c.CALL( )
  • ETH 0.01377 0x267c28aa6c1140b4211de5043e543f2f97f8e778.CALL( )
  • ETH 0.01377 0xf76cfa1117d4ce98839c68275752af47302ffe69.CALL( )
  • ETH 0.01377 0xaf304f0a4d73a37e844f1e0e902eeecf8758d8bd.CALL( )
  • ETH 0.01377 0x020348439454b6a6aad10c7af8b9904f55885c9f.CALL( )
    /**
     *Submitted for verification at Etherscan.io on 2020-05-16
    */
    
    pragma solidity 0.6.4;
    /**
     * @title Manage the owner for the BulkSender contract.
     */
    contract Ownable {
        address private _owner;
        event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
        constructor() public {
            _owner = msg.sender;
            emit OwnershipTransferred(address(this), _owner);
        }
        /**
         * Returns the address of the current owner.
         */
        function owner() public view returns (address) {
            return _owner;
        }
        /**
         * Throws if called by any account other than the owner.
         */
        modifier onlyOwner() {
            require(msg.sender == _owner, "Ownable: the caller is not the owner");
            _;
        }
        /**
         * Sets the new address as the owner.
         */
        function transferOwnership(address newOwner) onlyOwner public {
            require(newOwner != address(0), "Ownable: the new owner is the zero address");
            emit OwnershipTransferred(_owner, newOwner);
            _owner = newOwner;
        }
    }
    /**
     * @title Sending bulk transactions from the whitelisted wallets.
     */
    contract BulkSender is Ownable {
        mapping(address => bool) whitelist;
        /**
         * Throws if called by any account other than the whitelisted address.
         */
        modifier onlyWhiteListed() {
            require(whitelist[msg.sender], "Whitelist: the caller is not whitelisted");
            _;
        }
        /**
         * Approves the address as the whitelisted address.
         */
        function approve(address addr) onlyOwner external {
            whitelist[addr] = true;
        }
        /**
         * Removes the whitelisted address from the whitelist.
         */
        function remove(address addr) onlyOwner external {
            whitelist[addr] = false;
        }
        /**
         * Returns true if the address is the whitelisted address.
         */
        function isWhiteListed(address addr) public view returns (bool) {
            return whitelist[addr];
        }
        /**
         * @dev Gets the list of addresses and the list of amounts to make bulk transactions.
         * @param addresses - address[]
         * @param amounts - uint256[]
         */
        function distribute(address[] calldata addresses, uint256[] calldata amounts) onlyWhiteListed external payable  {
            require(addresses.length > 0, "BulkSender: the length of addresses should be greater than zero");
            require(amounts.length == addresses.length, "BulkSender: the length of addresses is not equal the length of amounts");
            for (uint256 i; i < addresses.length; i++) {
                uint256 value = amounts[i];
                require(value > 0, "BulkSender: the value should be greater then zero");
                address payable _to = address(uint160(addresses[i]));
                _to.transfer(value);
            }
        }
        /**
         * @dev This contract shouldn't accept payments.
         */
        receive() external payable {
            revert("This contract shouldn't accept payments.");
        }
    }