ETH Price: $3,317.18 (-1.27%)

Contract

0x09350F89e2D7B6e96bA730783c2d76137B045FEF
 

Multichain Info

Transaction Hash
Method
Block
From
To
Airdrop ERC721211923422024-11-15 9:56:237 days ago1731664583IN
0x09350F89...37B045FEF
0 ETH0.0532605613.4938613
Airdrop ERC721211920422024-11-15 8:56:237 days ago1731660983IN
0x09350F89...37B045FEF
0 ETH0.0395733416
Airdrop ERC721211824502024-11-14 0:47:598 days ago1731545279IN
0x09350F89...37B045FEF
0 ETH0.124685126.67016555
Airdrop ERC20211616572024-11-11 3:09:3511 days ago1731294575IN
0x09350F89...37B045FEF
0 ETH0.0029480114.7
Airdrop ERC20211616512024-11-11 3:08:2311 days ago1731294503IN
0x09350F89...37B045FEF
0 ETH0.0048703714.35059569
Airdrop ERC20211496392024-11-09 10:56:1113 days ago1731149771IN
0x09350F89...37B045FEF
0 ETH0.006658029.86470718
Airdrop ERC20211495812024-11-09 10:44:3513 days ago1731149075IN
0x09350F89...37B045FEF
0 ETH0.0082221310.16669328
Airdrop ERC20211495692024-11-09 10:42:1113 days ago1731148931IN
0x09350F89...37B045FEF
0 ETH0.0042133810.04449674
Airdrop ERC20211351302024-11-07 10:18:3515 days ago1730974715IN
0x09350F89...37B045FEF
0 ETH0.0022831318.1
Airdrop ERC20211351282024-11-07 10:18:1115 days ago1730974691IN
0x09350F89...37B045FEF
0 ETH0.0372445416.4
Airdrop ERC721211351162024-11-07 10:15:3515 days ago1730974535IN
0x09350F89...37B045FEF
0 ETH0.0116584716.37265532
Airdrop ETH211298392024-11-06 16:35:4716 days ago1730910947IN
0x09350F89...37B045FEF
0.054 ETH0.0031862915.81454507
Airdrop ETH211211752024-11-05 11:33:2317 days ago1730806403IN
0x09350F89...37B045FEF
0.08 ETH0.009727523.45145866
Airdrop ERC721211041622024-11-03 2:35:1119 days ago1730601311IN
0x09350F89...37B045FEF
0 ETH0.030326025.87392437
Airdrop ERC721211035942024-11-03 0:40:3519 days ago1730594435IN
0x09350F89...37B045FEF
0 ETH0.106765223.92200649
Airdrop ERC721211035752024-11-03 0:36:4719 days ago1730594207IN
0x09350F89...37B045FEF
0 ETH0.004242074.00840665
Airdrop ERC721211035612024-11-03 0:33:5919 days ago1730594039IN
0x09350F89...37B045FEF
0 ETH0.024257044.30851123
Airdrop ERC721211035542024-11-03 0:32:3519 days ago1730593955IN
0x09350F89...37B045FEF
0 ETH0.00088124.63797996
Airdrop ERC721211035472024-11-03 0:31:1119 days ago1730593871IN
0x09350F89...37B045FEF
0 ETH0.003397714.54630699
Airdrop ERC20211031912024-11-02 23:19:3520 days ago1730589575IN
0x09350F89...37B045FEF
0 ETH0.000277554.15570656
Airdrop ERC20210967582024-11-02 1:44:2320 days ago1730511863IN
0x09350F89...37B045FEF
0 ETH0.009889554.19943306
Airdrop ERC20210926862024-11-01 12:06:1121 days ago1730462771IN
0x09350F89...37B045FEF
0 ETH0.020294087.3256056
Airdrop ERC20210750652024-10-30 1:05:2323 days ago1730250323IN
0x09350F89...37B045FEF
0 ETH0.082574398.02768072
Airdrop ERC20210750542024-10-30 1:03:1123 days ago1730250191IN
0x09350F89...37B045FEF
0 ETH0.072248177.04010663
Airdrop ERC20210436202024-10-25 15:47:2328 days ago1729871243IN
0x09350F89...37B045FEF
0 ETH0.0152704917.65235905
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
212150602024-11-18 13:59:474 days ago1731938387
0x09350F89...37B045FEF
0.02 ETH
212150592024-11-18 13:59:354 days ago1731938375
0x09350F89...37B045FEF
0.81 ETH
212150592024-11-18 13:59:354 days ago1731938375
0x09350F89...37B045FEF
0.16 ETH
212150592024-11-18 13:59:354 days ago1731938375
0x09350F89...37B045FEF
0.65 ETH
212150592024-11-18 13:59:354 days ago1731938375
0x09350F89...37B045FEF
1.29 ETH
212150592024-11-18 13:59:354 days ago1731938375
0x09350F89...37B045FEF
0.65 ETH
212150592024-11-18 13:59:354 days ago1731938375
0x09350F89...37B045FEF
3.87 ETH
212150592024-11-18 13:59:354 days ago1731938375
0x09350F89...37B045FEF
4.84 ETH
212150592024-11-18 13:59:354 days ago1731938375
0x09350F89...37B045FEF
3.87 ETH
212150592024-11-18 13:59:354 days ago1731938375
0x09350F89...37B045FEF
4.84 ETH
212150592024-11-18 13:59:354 days ago1731938375
0x09350F89...37B045FEF
21 ETH
211518782024-11-09 18:26:1113 days ago1731176771
0x09350F89...37B045FEF
0.5849748 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
211298392024-11-06 16:35:4716 days ago1730910947
0x09350F89...37B045FEF
0.003 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GasliteDrop

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 9999999 runs

Other Settings:
paris EvmVersion
File 1 of 1 : GasliteDrop.sol
pragma solidity 0.8.19;

/**
                                                                                                                   
                                                          bbbbbbbb                                         dddddddd
                                                          b::::::b                                         d::::::d
                                                          b::::::b                                         d::::::d
                                                          b::::::b                                         d::::::d
                                                           b:::::b                                         d:::::d 
   ggggggggg   ggggg aaaaaaaaaaaaa      ssssssssss         b:::::bbbbbbbbb      aaaaaaaaaaaaa      ddddddddd:::::d 
  g:::::::::ggg::::g a::::::::::::a   ss::::::::::s        b::::::::::::::bb    a::::::::::::a   dd::::::::::::::d 
 g:::::::::::::::::g aaaaaaaaa:::::ass:::::::::::::s       b::::::::::::::::b   aaaaaaaaa:::::a d::::::::::::::::d 
g::::::ggggg::::::gg          a::::as::::::ssss:::::s      b:::::bbbbb:::::::b           a::::ad:::::::ddddd:::::d 
g:::::g     g:::::g    aaaaaaa:::::a s:::::s  ssssss       b:::::b    b::::::b    aaaaaaa:::::ad::::::d    d:::::d 
g:::::g     g:::::g  aa::::::::::::a   s::::::s            b:::::b     b:::::b  aa::::::::::::ad:::::d     d:::::d 
g:::::g     g:::::g a::::aaaa::::::a      s::::::s         b:::::b     b:::::b a::::aaaa::::::ad:::::d     d:::::d 
g::::::g    g:::::ga::::a    a:::::assssss   s:::::s       b:::::b     b:::::ba::::a    a:::::ad:::::d     d:::::d 
g:::::::ggggg:::::ga::::a    a:::::as:::::ssss::::::s      b:::::bbbbbb::::::ba::::a    a:::::ad::::::ddddd::::::dd
 g::::::::::::::::ga:::::aaaa::::::as::::::::::::::s       b::::::::::::::::b a:::::aaaa::::::a d:::::::::::::::::d
  gg::::::::::::::g a::::::::::aa:::as:::::::::::ss        b:::::::::::::::b   a::::::::::aa:::a d:::::::::ddd::::d
    gggggggg::::::g  aaaaaaaaaa  aaaa sssssssssss          bbbbbbbbbbbbbbbb     aaaaaaaaaa  aaaa  ddddddddd   ddddd
            g:::::g                                                                                                
gggggg      g:::::g                                                                                                
g:::::gg   gg:::::g                                                                                                
 g::::::ggg:::::::g                                                                                                
  gg:::::::::::::g                                                                                                 
    ggg::::::ggg                                                                                                   
       gggggg                                                                                                      
 */

/**
 * @title GasliteDrop
 * @notice Turbo gas optimized bulk transfers of ERC20, ERC721, and ETH
 * @author Harrison (@PopPunkOnChain)
 * @author Gaslite (@GasliteGG)
 * @author Pop Punk LLC (@PopPunkLLC)
 */
contract GasliteDrop {

    /**
     * @notice Airdrop ERC721 tokens to a list of addresses
     * @param _nft The address of the ERC721 contract
     * @param _addresses The addresses to airdrop to
     * @param _tokenIds The tokenIds to airdrop
     */
    function airdropERC721(
        address _nft, 
        address[] calldata _addresses, 
        uint256[] calldata _tokenIds
    ) external payable {
        assembly {
            // Check that the number of addresses matches the number of tokenIds
            if iszero(eq(_tokenIds.length, _addresses.length)) {
                revert(0, 0)
            }
            // transferFrom(address from, address to, uint256 tokenId)
            mstore(0x00, hex"23b872dd")
            // from address
            mstore(0x04, caller())

            // end of array
            let end := add(_addresses.offset, shl(5, _addresses.length))
            // diff = _addresses.offset - _tokenIds.offset
            let diff := sub(_addresses.offset, _tokenIds.offset)

            // Loop through the addresses
            for { let addressOffset := _addresses.offset } 1 {} {
                // to address
                mstore(0x24, calldataload(addressOffset))
                // tokenId
                mstore(0x44, calldataload(sub(addressOffset, diff)))
                // transfer the token
                if iszero(call(gas(), _nft, 0, 0x00, 0x64, 0, 0)){
                    revert(0, 0)
                }
                // increment the address offset
                addressOffset := add(addressOffset, 0x20)
                // if addressOffset >= end, break
                if iszero(lt(addressOffset, end)) { break }
            }
        }
    }

    /**
     * @notice Airdrop ERC20 tokens to a list of addresses
     * @param _token The address of the ERC20 contract
     * @param _addresses The addresses to airdrop to
     * @param _amounts The amounts to airdrop
     * @param _totalAmount The total amount to airdrop
     */
    function airdropERC20(
        address _token,
        address[] calldata _addresses,
        uint256[] calldata _amounts,
        uint256 _totalAmount
    ) external payable {
        assembly {
            // Check that the number of addresses matches the number of amounts
            if iszero(eq(_amounts.length, _addresses.length)) {
                revert(0, 0)
            }

            // transferFrom(address from, address to, uint256 amount)
            mstore(0x00, hex"23b872dd")
            // from address
            mstore(0x04, caller())
            // to address (this contract)
            mstore(0x24, address())
            // total amount
            mstore(0x44, _totalAmount)

            // transfer total amount to this contract
            if iszero(call(gas(), _token, 0, 0x00, 0x64, 0, 0)){
                revert(0, 0)
            }

            // transfer(address to, uint256 value)
            mstore(0x00, hex"a9059cbb")

            // end of array
            let end := add(_addresses.offset, shl(5, _addresses.length))
            // diff = _addresses.offset - _amounts.offset
            let diff := sub(_addresses.offset, _amounts.offset)

            // Loop through the addresses
            for { let addressOffset := _addresses.offset } 1 {} {
                // to address
                mstore(0x04, calldataload(addressOffset))
                // amount
                mstore(0x24, calldataload(sub(addressOffset, diff)))
                // transfer the tokens
                if iszero(call(gas(), _token, 0, 0x00, 0x64, 0, 0)){
                    revert(0, 0)
                }
                // increment the address offset
                addressOffset := add(addressOffset, 0x20)
                // if addressOffset >= end, break
                if iszero(lt(addressOffset, end)) { break }
            }
        }
    }

    /**
     * @notice Airdrop ETH to a list of addresses
     * @param _addresses The addresses to airdrop to
     * @param _amounts The amounts to airdrop
     */
    function airdropETH(
        address[] calldata _addresses,
        uint256[] calldata _amounts
    ) external payable {
        assembly {
            // Check that the number of addresses matches the number of amounts
            if iszero(eq(_amounts.length, _addresses.length)) {
                revert(0, 0)
            }

            // iterator
            let i := _addresses.offset
            // end of array
            let end := add(i, shl(5, _addresses.length))
            // diff = _addresses.offset - _amounts.offset
            let diff := sub(_amounts.offset, _addresses.offset)

            // Loop through the addresses
            for {} 1 {} {
                // transfer the ETH
                if iszero(
                    call(gas(), calldataload(i), calldataload(add(i, diff)), 0x00, 0x00, 0x00, 0x00)
                ) { revert(0x00, 0x00) }
                // increment the iterator
                i := add(i, 0x20)
                // if i >= end, break
                if eq(end, i) { break }
            }
        }
    }
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "@solady/=lib/solady/src/",
    "@openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "solady/=lib/solady/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 9999999
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"uint256","name":"_totalAmount","type":"uint256"}],"name":"airdropERC20","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_nft","type":"address"},{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"airdropERC721","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"airdropETH","outputs":[],"stateMutability":"payable","type":"function"}]

608060405234801561001057600080fd5b50610400806100206000396000f3fe6080604052600436106100345760003560e01c80631d5659fb1461003957806382947abe1461004e578063c1a3800614610061575b600080fd5b61004c610047366004610254565b610074565b005b61004c61005c3660046102d5565b6100e7565b61004c61006f36600461035e565b61019b565b82811461008057600080fd5b7f23b872dd00000000000000000000000000000000000000000000000000000000600052336004528260051b8401828503855b80356024528181033560445260008060646000808c5af16100d357600080fd5b6020018281106100b3575050505050505050565b8382146100f357600080fd5b7f23b872dd0000000000000000000000000000000000000000000000000000000060005233600452306024528060445260008060646000808a5af161013757600080fd5b7fa9059cbb000000000000000000000000000000000000000000000000000000006000528360051b8501838603865b80356004528181033560245260008060646000808d5af161018657600080fd5b60200182811061016657505050505050505050565b8281146101a757600080fd5b838360051b81018584035b6000806000808487013587355af16101c957600080fd5b6020830192508282036101b25750505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461020357600080fd5b919050565b60008083601f84011261021a57600080fd5b50813567ffffffffffffffff81111561023257600080fd5b6020830191508360208260051b850101111561024d57600080fd5b9250929050565b60008060008060006060868803121561026c57600080fd5b610275866101df565b9450602086013567ffffffffffffffff8082111561029257600080fd5b61029e89838a01610208565b909650945060408801359150808211156102b757600080fd5b506102c488828901610208565b969995985093965092949392505050565b600080600080600080608087890312156102ee57600080fd5b6102f7876101df565b9550602087013567ffffffffffffffff8082111561031457600080fd5b6103208a838b01610208565b9097509550604089013591508082111561033957600080fd5b5061034689828a01610208565b979a9699509497949695606090950135949350505050565b6000806000806040858703121561037457600080fd5b843567ffffffffffffffff8082111561038c57600080fd5b61039888838901610208565b909650945060208701359150808211156103b157600080fd5b506103be87828801610208565b9598949750955050505056fea2646970667358221220792dccaaf3120aecf3c06a58bf4e368e4bc40ceb2a47dc5d8a9ae6936fadc6d164736f6c63430008130033

Deployed Bytecode

0x6080604052600436106100345760003560e01c80631d5659fb1461003957806382947abe1461004e578063c1a3800614610061575b600080fd5b61004c610047366004610254565b610074565b005b61004c61005c3660046102d5565b6100e7565b61004c61006f36600461035e565b61019b565b82811461008057600080fd5b7f23b872dd00000000000000000000000000000000000000000000000000000000600052336004528260051b8401828503855b80356024528181033560445260008060646000808c5af16100d357600080fd5b6020018281106100b3575050505050505050565b8382146100f357600080fd5b7f23b872dd0000000000000000000000000000000000000000000000000000000060005233600452306024528060445260008060646000808a5af161013757600080fd5b7fa9059cbb000000000000000000000000000000000000000000000000000000006000528360051b8501838603865b80356004528181033560245260008060646000808d5af161018657600080fd5b60200182811061016657505050505050505050565b8281146101a757600080fd5b838360051b81018584035b6000806000808487013587355af16101c957600080fd5b6020830192508282036101b25750505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461020357600080fd5b919050565b60008083601f84011261021a57600080fd5b50813567ffffffffffffffff81111561023257600080fd5b6020830191508360208260051b850101111561024d57600080fd5b9250929050565b60008060008060006060868803121561026c57600080fd5b610275866101df565b9450602086013567ffffffffffffffff8082111561029257600080fd5b61029e89838a01610208565b909650945060408801359150808211156102b757600080fd5b506102c488828901610208565b969995985093965092949392505050565b600080600080600080608087890312156102ee57600080fd5b6102f7876101df565b9550602087013567ffffffffffffffff8082111561031457600080fd5b6103208a838b01610208565b9097509550604089013591508082111561033957600080fd5b5061034689828a01610208565b979a9699509497949695606090950135949350505050565b6000806000806040858703121561037457600080fd5b843567ffffffffffffffff8082111561038c57600080fd5b61039888838901610208565b909650945060208701359150808211156103b157600080fd5b506103be87828801610208565b9598949750955050505056fea2646970667358221220792dccaaf3120aecf3c06a58bf4e368e4bc40ceb2a47dc5d8a9ae6936fadc6d164736f6c63430008130033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.