Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Airdrop ETH | 282433 | 2 days ago | IN | 0.001 ETH | 0.00000539 |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xe231Aa71...4c4297E79 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
GasliteDrop
Compiler Version
v0.8.19+commit.7dd6d404
ZkSolc Version
v1.5.4
Contract Source Code (Solidity)
/** *Submitted for verification at abscan.org on 2024-11-20 */ 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 } } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Deployed Bytecode
0x0001000000000002000500000000000200000000000103550000008003000039000000400030043f00000001002001900000004e0000c13d000000000201001900000060022002700000004d02200197000000040020008c000001280000413d000000000301043b000000e0033002700000004f0030009c000000560000613d000000500030009c0000009c0000613d000000510030009c000001280000c13d000000640020008c000001280000413d0000000403100370000000000303043b000400000003001d000000540030009c000001280000213d0000002403100370000000000303043b000000520030009c000001280000213d0000002304300039000000000024004b000001280000813d0000000404300039000000000441034f000000000504043b000000520050009c000001280000213d000000240730003900000005045002100000000008740019000000000028004b000001280000213d0000004404100370000000000404043b000000520040009c000001280000213d0000002306400039000000000026004b000001280000813d0000000406400039000000000661034f000000000606043b000000520060009c000001280000213d000000000056004b000001280000c13d000000050560021000000000055400190000002405500039000000000025004b000001280000213d0000005502000041000000000020043f0000000002000411000000040020043f00000000053400490000000402000029000000040020008c0000010e0000c13d0000004402000039000000240400003900000000030700190000002007300039000000000087004b000000490000413d000000dd0000013d0000000001000416000000000001004b000001280000c13d0000002001000039000001000010044300000120000004430000004e01000041000001300001042e000000440020008c000001280000413d0000000403100370000000000303043b000000520030009c000001280000213d0000002304300039000000000024004b000001280000813d0000000404300039000000000441034f000000000404043b000000520040009c000001280000213d000000240730003900000005054002100000000008750019000000000028004b000001280000213d0000002405100370000000000505043b000000520050009c000001280000213d0000002306500039000000000026004b000001280000813d0000000406500039000000000161034f000000000101043b000000520010009c000001280000213d000000000041004b000001280000c13d000000050110021000000000011500190000002401100039000000000021004b000001280000213d0000000005350049000400000008001d000300000005001d0000008c0000013d00000053011001c700008009020000390000000005000019012f012a0000040f0000000100200190000000050700002900000004080000290000000305000029000001280000613d0000002007700039000000000078004b000000e40000613d000000000175001900000000047003670000000001100367000000000301043b000000000404043b0000000001000414000000040040008c000000890000613d000500000007001d0000004d0010009c0000004d01008041000000c001100210000000000003004b000000800000c13d0000000002040019000000830000013d000000840020008c000001280000413d0000000403100370000000000303043b000400000003001d000000540030009c000001280000213d0000002403100370000000000703043b000000520070009c000001280000213d0000002303700039000000000023004b000001280000813d0000000403700039000000000331034f000000000303043b000000520030009c000001280000213d000000240570003900000005043002100000000006540019000000000026004b000001280000213d0000004404100370000000000804043b000000520080009c000001280000213d0000002304800039000000000024004b000001280000813d0000000404800039000000000441034f000000000404043b000000520040009c000001280000213d000000000034004b000001280000c13d000000050340021000000000033800190000002403300039000000000023004b000001280000213d0000005502000041000000000020043f0000000002000411000000040020043f0000000002000410000000240020043f0000006402100370000000000202043b000000440020043f00000000030004140000000402000029000000040020008c000000e60000c13d0000005702000041000000000020043f00000000030500190000002005300039000000000065004b000000d60000413d0000000005780049000000240200003900000004040000390000000005350019000000000331034f000000000151034f000000000101043b000000000303043b000000000034043500000000001204350000000001000019000001300001042e0000004d0030009c0000004d03008041000000c00130021000000056011001c7000500000005001d000300000006001d000200000007001d000100000008001d012f012a0000040f0000000105000029000000020400002900000005030000290000000100200190000001280000613d0000005701000041000000000010043f0002000000450051000500000003001d0000000002300367000000000202043b000000040020043f00000002023000290000000001200367000000000101043b000000240010043f00000000010004140000004d0010009c0000004d01008041000000c00110021000000056011001c70000000402000029012f012a0000040f000000050300002900000001002001900000000301000029000001280000613d0000002003300039000000000013004b000000f70000413d000000e40000013d000300000008001d000200000005001d000500000007001d0000000002700367000000000202043b000000240020043f00000000025700190000000001200367000000000101043b000000440010043f00000000010004140000004d0010009c0000004d01008041000000c00110021000000056011001c70000000402000029012f012a0000040f000000050700002900000001002001900000000301000029000001280000613d0000002007700039000000000017004b0000000205000029000001100000413d000000e40000013d000000000100001900000131000104300000012d002104210000000102000039000000000001042d0000000002000019000000000001042d0000012f00000432000001300001042e00000131000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000c1a380060000000000000000000000000000000000000000000000000000000082947abe000000000000000000000000000000000000000000000000000000001d5659fb000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff23b872dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000a9059cbb000000000000000000000000000000000000000000000000000000000b54055fcbb012d2738197ca704f44a9158017ef0b64b2ce288c8ed299cffaa8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.