Transaction Hash:
Block:
19259991 at Feb-19-2024 06:26:11 AM +UTC
Transaction Fee:
0.00327607867395018 ETH
$8.79
Gas Used:
128,695 Gas / 25.456145724 Gwei
Emitted Events:
233 |
TransparentUpgradeableProxy.0xd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a( 0xd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a, 0000000000000000000000009d8aec0648626ec0c3d5bd49db46bb549c22b855, 000000000000000000000000000000000000000000000015af1d78b58c400000 )
|
234 |
AltLayerToken.Transfer( from=GnosisSafeProxy, to=[Sender] 0x9d8aec0648626ec0c3d5bd49db46bb549c22b855, value=400000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x1f9090aa...8e676c326
Miner
| 6.018847289310569303 Eth | 6.018859772725569303 Eth | 0.000012483415 | ||
0x8457CA50...35Bc0fbFB | |||||
0x9D8aeC06...49C22b855 |
0.011237589120392975 Eth
Nonce: 1
|
0.007961510446442795 Eth
Nonce: 2
| 0.00327607867395018 | ||
0xb58a659E...7E8224D7E | (AltLayer: Airdrop Distribution) |
Execution Trace
TransparentUpgradeableProxy.304c2c03( )
Airdrop.claim( )
-
Null: 0x000...001.97aab66f( )
-
AltLayerToken.transferFrom( from=0x3aF2ACB662A241da4ef4310C7AB226f552B42115, to=0x9D8aeC0648626Ec0C3d5BD49Db46Bb549C22b855, value=400000000000000000000 ) => ( True )
-
claim[Airdrop (ln:101)]
_claim[Airdrop (ln:110)]
verifyCalldata[Airdrop (ln:143)]
processProofCalldata[MerkleProof (ln:464)]
_hashPair[MerkleProof (ln:485)]
_efficientHash[MerkleProof (ln:629)]
_efficientHash[MerkleProof (ln:629)]
Claimed[Airdrop (ln:147)]
safeTransferFrom[Airdrop (ln:148)]
File 1 of 4: TransparentUpgradeableProxy
File 2 of 4: GnosisSafeProxy
File 3 of 4: AltLayerToken
File 4 of 4: Airdrop
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (proxy/transparent/TransparentUpgradeableProxy.sol)pragma solidity ^0.8.20;import {ERC1967Utils} from "../ERC1967/ERC1967Utils.sol";import {ERC1967Proxy} from "../ERC1967/ERC1967Proxy.sol";import {IERC1967} from "../../interfaces/IERC1967.sol";import {ProxyAdmin} from "./ProxyAdmin.sol";/*** @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}* does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch* mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not* include them in the ABI so this interface must be used to interact with it.*/interface ITransparentUpgradeableProxy is IERC1967 {function upgradeToAndCall(address, bytes calldata) external payable;}
File 2 of 4: GnosisSafeProxy
12345678910111213141516// SPDX-License-Identifier: LGPL-3.0-onlypragma solidity >=0.7.0 <0.9.0;/// @title IProxy - Helper interface to access masterCopy of the Proxy on-chain/// @author Richard Meissner - <richard@gnosis.io>interface IProxy {function masterCopy() external view returns (address);}/// @title GnosisSafeProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract./// @author Stefan George - <stefan@gnosis.io>/// @author Richard Meissner - <richard@gnosis.io>contract GnosisSafeProxy {// singleton always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.// To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt`address internal singleton;
File 3 of 4: AltLayerToken
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity =0.8.23;import {ERC20, ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";import {ERC20Capped} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol";import {ERC20Pausable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol";import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";/// @title AltLayer Token Contract/// @notice Implements an ERC20 token with a cap, burnability, pausability, and ownership featurescontract AltLayerToken isERC20Burnable,ERC20Permit,ERC20Capped,ERC20Pausable,Ownable{
File 4 of 4: Airdrop
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity =0.8.23;import {SafeERC20, IERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";import {MerkleProof} from "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";/// @title Airdrop Contract/// @notice This contract allows for a token airdrop based on a Merkle tree for efficient proof of inclusion.contract Airdrop is PausableUpgradeable, OwnableUpgradeable {using SafeERC20 for IERC20;address public vault;address public token;bytes32 public merkleRoot;bytes32 public messageHash;