Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
7 | 92 days ago | Contract Creation | 0 ETH |
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.
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"}]
Contract Creation Code
9c4d535b000000000000000000000000000000000000000000000000000000000000000001000059252bb42d04403da02c392ef03f57ea23428037f1ea812615748dea4900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x0001000000000002000500000000000200000000000103550000008003000039000000400030043f00000001002001900000004e0000c13d000000000201001900000060022002700000004d02200197000000040020008c000001280000413d000000000301043b000000e0033002700000004f0030009c000000560000613d000000500030009c0000009c0000613d000000510030009c000001280000c13d000000640020008c000001280000413d0000000403100370000000000303043b000400000003001d000000540030009c000001280000213d0000002403100370000000000303043b000000520030009c000001280000213d0000002304300039000000000024004b000001280000813d0000000404300039000000000441034f000000000504043b000000520050009c000001280000213d000000240730003900000005045002100000000008740019000000000028004b000001280000213d0000004404100370000000000404043b000000520040009c000001280000213d0000002306400039000000000026004b000001280000813d0000000406400039000000000661034f000000000606043b000000520060009c000001280000213d000000000056004b000001280000c13d000000050560021000000000055400190000002405500039000000000025004b000001280000213d0000005502000041000000000020043f0000000002000411000000040020043f00000000053400490000000402000029000000040020008c0000010e0000c13d0000004402000039000000240400003900000000030700190000002007300039000000000087004b000000490000413d000000dd0000013d0000000001000416000000000001004b000001280000c13d0000002001000039000001000010044300000120000004430000004e01000041000001300001042e000000440020008c000001280000413d0000000403100370000000000303043b000000520030009c000001280000213d0000002304300039000000000024004b000001280000813d0000000404300039000000000441034f000000000404043b000000520040009c000001280000213d000000240730003900000005054002100000000008750019000000000028004b000001280000213d0000002405100370000000000505043b000000520050009c000001280000213d0000002306500039000000000026004b000001280000813d0000000406500039000000000161034f000000000101043b000000520010009c000001280000213d000000000041004b000001280000c13d000000050110021000000000011500190000002401100039000000000021004b000001280000213d0000000005350049000400000008001d000300000005001d0000008c0000013d00000053011001c700008009020000390000000005000019012f012a0000040f0000000100200190000000050700002900000004080000290000000305000029000001280000613d0000002007700039000000000078004b000000e40000613d000000000175001900000000047003670000000001100367000000000301043b000000000404043b0000000001000414000000040040008c000000890000613d000500000007001d0000004d0010009c0000004d01008041000000c001100210000000000003004b000000800000c13d0000000002040019000000830000013d000000840020008c000001280000413d0000000403100370000000000303043b000400000003001d000000540030009c000001280000213d0000002403100370000000000703043b000000520070009c000001280000213d0000002303700039000000000023004b000001280000813d0000000403700039000000000331034f000000000303043b000000520030009c000001280000213d000000240570003900000005043002100000000006540019000000000026004b000001280000213d0000004404100370000000000804043b000000520080009c000001280000213d0000002304800039000000000024004b000001280000813d0000000404800039000000000441034f000000000404043b000000520040009c000001280000213d000000000034004b000001280000c13d000000050340021000000000033800190000002403300039000000000023004b000001280000213d0000005502000041000000000020043f0000000002000411000000040020043f0000000002000410000000240020043f0000006402100370000000000202043b000000440020043f00000000030004140000000402000029000000040020008c000000e60000c13d0000005702000041000000000020043f00000000030500190000002005300039000000000065004b000000d60000413d0000000005780049000000240200003900000004040000390000000005350019000000000331034f000000000151034f000000000101043b000000000303043b000000000034043500000000001204350000000001000019000001300001042e0000004d0030009c0000004d03008041000000c00130021000000056011001c7000500000005001d000300000006001d000200000007001d000100000008001d012f012a0000040f0000000105000029000000020400002900000005030000290000000100200190000001280000613d0000005701000041000000000010043f0002000000450051000500000003001d0000000002300367000000000202043b000000040020043f00000002023000290000000001200367000000000101043b000000240010043f00000000010004140000004d0010009c0000004d01008041000000c00110021000000056011001c70000000402000029012f012a0000040f000000050300002900000001002001900000000301000029000001280000613d0000002003300039000000000013004b000000f70000413d000000e40000013d000300000008001d000200000005001d000500000007001d0000000002700367000000000202043b000000240020043f00000000025700190000000001200367000000000101043b000000440010043f00000000010004140000004d0010009c0000004d01008041000000c00110021000000056011001c70000000402000029012f012a0000040f000000050700002900000001002001900000000301000029000001280000613d0000002007700039000000000017004b0000000205000029000001100000413d000000e40000013d000000000100001900000131000104300000012d002104210000000102000039000000000001042d0000000002000019000000000001042d0000012f00000432000001300001042e00000131000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000c1a380060000000000000000000000000000000000000000000000000000000082947abe000000000000000000000000000000000000000000000000000000001d5659fb000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff23b872dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000a9059cbb000000000000000000000000000000000000000000000000000000000b54055fcbb012d2738197ca704f44a9158017ef0b64b2ce288c8ed299cffaa8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.