Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00Latest 18 from a total of 18 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Airdrop ERC1155 | 16387955 | 175 days ago | IN | 0 ETH | 0.00030434 | ||||
| Airdrop ERC1155 | 16378393 | 175 days ago | IN | 0 ETH | 0.00005333 | ||||
| Airdrop ERC1155 | 16378364 | 175 days ago | IN | 0 ETH | 0.00004812 | ||||
| Airdrop ERC1155 | 16378325 | 175 days ago | IN | 0 ETH | 0.00004677 | ||||
| Airdrop ERC1155 | 16378281 | 175 days ago | IN | 0 ETH | 0.00005247 | ||||
| Airdrop ERC1155 | 16050940 | 179 days ago | IN | 0 ETH | 0.00010486 | ||||
| Airdrop ERC1155 | 15876431 | 181 days ago | IN | 0 ETH | 0.00011579 | ||||
| Airdrop ERC1155 | 15876381 | 181 days ago | IN | 0 ETH | 0.00012242 | ||||
| Airdrop ERC1155 | 15876319 | 181 days ago | IN | 0 ETH | 0.00009184 | ||||
| Airdrop ERC1155 | 15876123 | 181 days ago | IN | 0 ETH | 0.00011639 | ||||
| Airdrop ERC1155 | 13736309 | 206 days ago | IN | 0 ETH | 0.00011388 | ||||
| Airdrop ERC1155 | 13736257 | 206 days ago | IN | 0 ETH | 0.00011383 | ||||
| Airdrop ERC1155 | 13736220 | 206 days ago | IN | 0 ETH | 0.00010634 | ||||
| Airdrop ERC1155 | 13736167 | 206 days ago | IN | 0 ETH | 0.00011437 | ||||
| Airdrop ERC1155 | 13735738 | 206 days ago | IN | 0 ETH | 0.00011752 | ||||
| Airdrop ERC1155 | 13719590 | 206 days ago | IN | 0 ETH | 0.00011939 | ||||
| Airdrop ERC1155 | 7527778 | 280 days ago | IN | 0 ETH | 0.00079381 | ||||
| Airdrop ERC1155 | 7521917 | 280 days ago | IN | 0 ETH | 0.00001333 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 7520042 | 281 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
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:
GasliteDrop1155
Compiler Version
v0.8.20+commit.a1b79de6
ZkSolc Version
v1.5.12
Optimization Enabled:
Yes with Mode 3
Other Settings:
shanghai EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity 0.8.20;
// forgefmt: disable-start
/**
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
*/
// forgefmt: disable-end
interface IERC1155 {
function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data) external;
}
/// @title GasliteDrop1155
/// @notice Turbo gas optimized bulk transfers of ERC1155
/// @author Harrison (@PopPunkOnChain)
/// @author 0xjustadev (@0xjustadev)
/// @author Gaslite (@GasliteGG)
/// @author Pop Punk LLC (@PopPunkLLC)
contract GasliteDrop1155 {
bytes32 private immutable SAFE_TRANSFER_FROM_SELECTOR;
struct AirdropToken {
uint256 tokenId;
AirdropTokenAmount[] airdropAmounts;
}
struct AirdropTokenAmount {
uint256 amount;
address[] recipients;
}
constructor() {
SAFE_TRANSFER_FROM_SELECTOR = IERC1155.safeTransferFrom.selector;
}
/// @notice Airdrop ERC1155 tokens to a list of addresses
/// @param tokenAddress The address of the ERC1155 contract
/// @param airdropTokens The tokenIds and amounts to airdrop
function airdropERC1155(address tokenAddress, AirdropToken[] calldata airdropTokens) external {
bytes32 safeTransferFromSelector = SAFE_TRANSFER_FROM_SELECTOR;
assembly {
mstore(0x00, safeTransferFromSelector)
mstore(0x04, caller())
mstore(0x84, 0xA0)
let tokenArrayCalldataOffsetStart := 0x64
let tokenArrayCalldataOffset := 0x64
let tokenArrayCalldataOffsetEnd := add(tokenArrayCalldataOffset, shl(5, calldataload(0x44)))
for {} 1 {} {
if eq(tokenArrayCalldataOffset, tokenArrayCalldataOffsetEnd) { break }
let tokenCalldataOffset := add(tokenArrayCalldataOffsetStart, calldataload(tokenArrayCalldataOffset))
mstore(0x44, calldataload(tokenCalldataOffset))
let amountArrayCalldataOffsetStart := add(tokenCalldataOffset, 0x60)
let amountArrayCalldataOffset := amountArrayCalldataOffsetStart
let amountArrayCalldataOffsetEnd :=
add(amountArrayCalldataOffset, shl(5, calldataload(add(tokenCalldataOffset, 0x40))))
let tmpTokenAddress := tokenAddress
for {} 1 {} {
if eq(amountArrayCalldataOffset, amountArrayCalldataOffsetEnd) { break }
let amountCalldataOffset :=
add(amountArrayCalldataOffsetStart, calldataload(amountArrayCalldataOffset))
mstore(0x64, calldataload(amountCalldataOffset))
let recipientArrayCalldataOffset := add(amountCalldataOffset, 0x60)
let recipientArrayCalldataOffsetEnd :=
add(recipientArrayCalldataOffset, shl(5, calldataload(add(amountCalldataOffset, 0x40))))
for {} 1 {} {
if eq(recipientArrayCalldataOffset, recipientArrayCalldataOffsetEnd) { break }
mstore(0x24, calldataload(recipientArrayCalldataOffset))
if iszero(call(gas(), tmpTokenAddress, 0, 0x00, 0xC4, 0, 0)) { revert(0, 0) }
recipientArrayCalldataOffset := add(recipientArrayCalldataOffset, 0x20)
}
amountArrayCalldataOffset := add(amountArrayCalldataOffset, 0x20)
}
tokenArrayCalldataOffset := add(tokenArrayCalldataOffset, 0x20)
}
}
}
}{
"viaIR": false,
"codegen": "yul",
"remappings": [
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"@solady/=lib/solady/",
"@ERC721A/=lib/ERC721A/",
"@murky/=lib/murky/src/",
"@openzeppelin/=lib/openzeppelin-contracts/",
"ERC721A/=lib/ERC721A/contracts/",
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
"murky/=lib/murky/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"solady/=lib/solady/"
],
"evmVersion": "shanghai",
"outputSelection": {
"*": {
"*": [
"abi"
]
}
},
"optimizer": {
"enabled": true,
"mode": "3",
"size_fallback": false,
"disable_system_request_memoization": true
},
"metadata": {},
"libraries": {},
"enableEraVMExtensions": false,
"forceEVMLA": false
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address[]","name":"recipients","type":"address[]"}],"internalType":"struct GasliteDrop1155.AirdropTokenAmount[]","name":"airdropAmounts","type":"tuple[]"}],"internalType":"struct GasliteDrop1155.AirdropToken[]","name":"airdropTokens","type":"tuple[]"}],"name":"airdropERC1155","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
9c4d535b000000000000000000000000000000000000000000000000000000000000000001000035ba9b0a83121ca255c6f65a2f33d7a9c55f61136503c83368bbac1dea00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x0001000000000002000800000000000200000000000103550000000100200190000000450000c13d000000600210027000000029022001970000008003000039000000400030043f000000040020008c000000920000413d000000000301043b0000002c033001970000002d0030009c000000920000c13d000000440020008c000000920000413d0000000003000416000000000003004b000000920000c13d0000000403100370000000000303043b000600000003001d0000002e0030009c000000920000213d0000002403100370000000000303043b0000002f0030009c000000920000213d0000002304300039000000000024004b000000920000813d0000000404300039000000000141034f000000000101043b0000002f0010009c000000920000213d000000050110021000000000011300190000002401100039000000000021004b000000920000213d000000300100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000290010009c0000002901008041000000c00110021000000031011001c70000800502000039009f009a0000040f0000000100200190000000540000613d000000000101043b000000000010043f0000000001000411000000040010043f000000a001000039000000840010043f00000044010000390000000001100367000000000101043b0000000501100212000000550000c13d0000000001000019000000a00001042e000000a001000039000000400010043f0000000001000416000000000001004b000000920000c13d0000002a01000041000000800010043f0000014000000443000001600010044300000020010000390000010000100443000000010100003900000120001004430000002b01000041000000a00001042e000000000001042f0000006402000039000100440010003d0000005c0000013d0000000202000029000000010020006c0000002002200039000000430000613d000200000002001d0000000002200367000000000302043b00000064023000390000000001200367000000000101043b000000440010043f000400000003001d000000a4013000390000000001100367000000000101043b0000000501100212000000580000613d0000000402000029000000c403200039000300000031001d000000710000013d00000005030000290000002003300039000000030030006c000000580000613d000500000003001d0000000001300367000000000101043b0000000401100029000000c4031000390000000003300367000000000303043b000000640030043f00000104031000390000000002300367000000000202043b00000005022002120000006d0000613d0000012401100039000700000012001d000800000001001d0000000001100367000000000101043b000000240010043f0000000001000414000000290010009c0000002901008041000000c00110021000000032011001c70000000602000029009f00950000040f0000000100200190000000920000613d00000008010000290000002001100039000000070010006c000000800000c13d0000006d0000013d0000000001000019000000a100010430000000000001042f00000098002104210000000102000039000000000001042d0000000002000019000000000001042d0000009d002104230000000102000039000000000001042d0000000002000019000000000001042d0000009f00000432000000a00001042e000000a1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffff242432a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000080000001000000000000000000ffffffff0000000000000000000000000000000000000000000000000000000089ee927600000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e020000020000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd6a2f858eb19dad6267e1ea8c821017d220fed5f8471213b3733d3267162aa5
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.