Transaction Hash:
Block:
21925187 at Feb-25-2025 06:38:47 PM +UTC
Transaction Fee:
0.000498669168420066 ETH
$1.39
Gas Used:
231,026 Gas / 2.158498041 Gwei
Emitted Events:
0 |
Permit2.Permit( owner=[Sender] 0x32270e494f29b22921125e0c7a515a2385026122, token=ERC1967Proxy, spender=[Receiver] UniversalRouter, amount=2639231335000, expiration=1743100678, nonce=0 )
|
1 |
WETH9.Transfer( src=UniswapV3Pool, dst=[Receiver] UniversalRouter, wad=211054600118194151 )
|
2 |
ERC1967Proxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000032270e494f29b22921125e0c7a515a2385026122, 0x000000000000000000000000465e56cd21ad47d4d4790f17de5e0458f20c3719, 000000000000000000000000000000000000000000000000000002667e723a58 )
|
3 |
UniswapV3Pool.Swap( sender=[Receiver] UniversalRouter, recipient=[Receiver] UniversalRouter, amount0=-211054600118194151, amount1=2639231335000, sqrtPriceX96=279781200696025560784967602, liquidity=3233305434092865221, tick=-112928 )
|
4 |
TetherToken.Transfer( from=UniswapV3Pool, to=[Sender] 0x32270e494f29b22921125e0c7a515a2385026122, value=510051836 )
|
5 |
WETH9.Transfer( src=[Receiver] UniversalRouter, dst=UniswapV3Pool, wad=211054600118194151 )
|
6 |
UniswapV3Pool.Swap( sender=[Receiver] UniversalRouter, recipient=[Sender] 0x32270e494f29b22921125e0c7a515a2385026122, amount0=211054600118194151, amount1=-510051836, sqrtPriceX96=3895804353195846286762484, liquidity=2841754413340548831, tick=-198414 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x00000000...43aC78BA3 | (Uniswap Protocol: Permit2) | ||||
0x11b815ef...14B7697F6 | (Uniswap V3: USDT 3) | ||||
0x32270E49...385026122 |
0.29603131691222035 Eth
Nonce: 52
|
0.295532647743800284 Eth
Nonce: 53
| 0.000498669168420066 | ||
0x465E56cD...8F20C3719 | (Uniswap V3: GALA 3) | ||||
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 10.602115132769567821 Eth | 10.602273216142789161 Eth | 0.00015808337322134 | |
0xC02aaA39...83C756Cc2 | |||||
0xd1d2Eb1B...262C87cae | |||||
0xdAC17F95...13D831ec7 |
Execution Trace
UniversalRouter.execute( commands=0x0A00, inputs=[AAAAAAAAAAAAAAAA0dLrGx6QtjhYhyi0EwE30mLIfK4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmfnI6WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABn5ZsGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/yRo6/XA5XNSWxkfVpsydSyt/rQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnvhUOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQRbX7/JUiJt7IRp//Wul7vPb9PX4Ymz2IjuNhVmgsme2XmNM+wkkCqKSRTSmDir3T8v0KGRyl2700OZ/nRjD/QAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==, AAAAAAAAAAAAAAAAMicOSU8psikhEl4MelFaI4UCYSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmfnI6WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeNwiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABC0dLrGx6QtjhYhyi0EwE30mLIfK4AC7jAKqo5siP+jQoOXE8n6tkIPHVswgAB9NrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA], deadline=1740510505 )
Permit2.permit( owner=0x32270E494F29b22921125E0c7a515a2385026122, permitSingle=[{name:details, type:tuple, order:1, indexed:false, value:[{name:token, type:address, order:1, indexed:false, value:0xd1d2Eb1B1e90B638588728b4130137D262C87cae, valueString:0xd1d2Eb1B1e90B638588728b4130137D262C87cae}, {name:amount, type:uint160, order:2, indexed:false, value:2639231335000, valueString:2639231335000}, {name:expiration, type:uint48, order:3, indexed:false, value:1743100678, valueString:1743100678}, {name:nonce, type:uint48, order:4, indexed:false, value:0, valueString:0}], valueString:[{name:token, type:address, order:1, indexed:false, value:0xd1d2Eb1B1e90B638588728b4130137D262C87cae, valueString:0xd1d2Eb1B1e90B638588728b4130137D262C87cae}, {name:amount, type:uint160, order:2, indexed:false, value:2639231335000, valueString:2639231335000}, {name:expiration, type:uint48, order:3, indexed:false, value:1743100678, valueString:1743100678}, {name:nonce, type:uint48, order:4, indexed:false, value:0, valueString:0}]}, {name:spender, type:address, order:2, indexed:false, value:0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, valueString:0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD}, {name:sigDeadline, type:uint256, order:3, indexed:false, value:1740510478, valueString:1740510478}], signature=0x16D7EFF254889B7B211A7FFD6BA5EEF3DBF4F5F8626CF6223B8D8559A0B267B65E634CFB09240AA2924534A60E2AF74FCBF4286472976EF4D0E67F9D18C3FD001C )
-
Null: 0x000...001.9e0dc2ec( )
-
UniswapV3Pool.swap( recipient=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, zeroForOne=False, amountSpecified=2639231335000, sqrtPriceLimitX96=1461446703485210103287273052203988822378723970341, data=0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000032270E494F29B22921125E0C7A515A2385026122000000000000000000000000000000000000000000000000000000000000002BD1D2EB1B1E90B638588728B4130137D262C87CAE000BB8C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000 ) => ( amount0=-211054600118194151, amount1=2639231335000 )
-
WETH9.transfer( dst=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, wad=211054600118194151 ) => ( True )
ERC1967Proxy.70a08231( )
-
Gala.balanceOf( account=0x465E56cD21ad47d4d4790F17de5E0458F20C3719 ) => ( 5999139493918552 )
-
UniversalRouter.uniswapV3SwapCallback( amount0Delta=-211054600118194151, amount1Delta=2639231335000, data=0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000032270E494F29B22921125E0C7A515A2385026122000000000000000000000000000000000000000000000000000000000000002BD1D2EB1B1E90B638588728B4130137D262C87CAE000BB8C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000 )
Permit2.transferFrom( from=0x32270E494F29b22921125E0c7a515a2385026122, to=0x465E56cD21ad47d4d4790F17de5E0458F20C3719, amount=2639231335000, token=0xd1d2Eb1B1e90B638588728b4130137D262C87cae )
ERC1967Proxy.23b872dd( )
-
Gala.transferFrom( from=0x32270E494F29b22921125E0c7a515a2385026122, to=0x465E56cD21ad47d4d4790F17de5E0458F20C3719, amount=2639231335000 ) => ( True )
-
ERC1967Proxy.70a08231( )
-
Gala.balanceOf( account=0x465E56cD21ad47d4d4790F17de5E0458F20C3719 ) => ( 6001778725253552 )
-
-
UniswapV3Pool.swap( recipient=0x32270E494F29b22921125E0c7a515a2385026122, zeroForOne=True, amountSpecified=211054600118194151, sqrtPriceLimitX96=4295128740, data=0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000003FC91A3AFD70395CD496C647D5A6CC9D4B2B7FAD000000000000000000000000000000000000000000000000000000000000002BC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC20001F4DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000000000000000000000 ) => ( amount0=211054600118194151, amount1=-510051836 )
-
TetherToken.transfer( _to=0x32270E494F29b22921125E0c7a515a2385026122, _value=510051836 )
-
WETH9.balanceOf( 0x11b815efB8f581194ae79006d24E0d814B7697F6 ) => ( 15603261350839181555848 )
UniversalRouter.uniswapV3SwapCallback( amount0Delta=211054600118194151, amount1Delta=-510051836, data=0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000003FC91A3AFD70395CD496C647D5A6CC9D4B2B7FAD000000000000000000000000000000000000000000000000000000000000002BC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC20001F4DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000000000000000000000 )
-
WETH9.transfer( dst=0x11b815efB8f581194ae79006d24E0d814B7697F6, wad=211054600118194151 ) => ( True )
-
-
WETH9.balanceOf( 0x11b815efB8f581194ae79006d24E0d814B7697F6 ) => ( 15603472405439299749999 )
-
execute[UniversalRouter (ln:16)]
execute[UniversalRouter (ln:21)]
execute[UniversalRouter (ln:21)]
File 1 of 8: UniversalRouter
File 2 of 8: Permit2
File 3 of 8: UniswapV3Pool
File 4 of 8: WETH9
File 5 of 8: ERC1967Proxy
File 6 of 8: UniswapV3Pool
File 7 of 8: TetherToken
File 8 of 8: Gala
12345678910111213141516// SPDX-License-Identifier: GPL-3.0-or-laterpragma solidity ^0.8.17;// Command implementationsimport {Dispatcher} from './base/Dispatcher.sol';import {RewardsCollector} from './base/RewardsCollector.sol';import {RouterParameters, RouterImmutables} from './base/RouterImmutables.sol';import {Commands} from './libraries/Commands.sol';import {IUniversalRouter} from './interfaces/IUniversalRouter.sol';contract UniversalRouter is RouterImmutables, IUniversalRouter, Dispatcher, RewardsCollector {modifier checkDeadline(uint256 deadline) {if (block.timestamp > deadline) revert TransactionDeadlinePassed();_;}constructor(RouterParameters memory params) RouterImmutables(params) {}/// @inheritdoc IUniversalRouterfunction execute(bytes calldata commands, bytes[] calldata inputs, uint256 deadline)
File 2 of 8: Permit2
12345678910111213141516// SPDX-License-Identifier: AGPL-3.0-onlypragma solidity >=0.8.0;/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation./// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.abstract contract ERC20 {/*//////////////////////////////////////////////////////////////EVENTS//////////////////////////////////////////////////////////////*/event Transfer(address indexed from, address indexed to, uint256 amount);event Approval(address indexed owner, address indexed spender, uint256 amount);/*//////////////////////////////////////////////////////////////METADATA STORAGE//////////////////////////////////////////////////////////////*/string public name;
File 3 of 8: UniswapV3Pool
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma solidity =0.7.6;import './interfaces/IUniswapV3Pool.sol';import './NoDelegateCall.sol';import './libraries/LowGasSafeMath.sol';import './libraries/SafeCast.sol';import './libraries/Tick.sol';import './libraries/TickBitmap.sol';import './libraries/Position.sol';import './libraries/Oracle.sol';import './libraries/FullMath.sol';import './libraries/FixedPoint128.sol';import './libraries/TransferHelper.sol';import './libraries/TickMath.sol';import './libraries/LiquidityMath.sol';import './libraries/SqrtPriceMath.sol';
File 4 of 8: WETH9
12345678910111213141516// Copyright (C) 2015, 2016, 2017 Dapphub// This program is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License// along with this program. If not, see <http://www.gnu.org/licenses/>.pragma solidity ^0.4.18;
File 5 of 8: ERC1967Proxy
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";import "@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol";import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";// Kept for backwards compatibility with older versions of Hardhat and Truffle plugins.contract AdminUpgradeabilityProxy is TransparentUpgradeableProxy {constructor(address logic, address admin, bytes memory data) payable TransparentUpgradeableProxy(logic, admin, data) {}}// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "./IBeacon.sol";import "../Proxy.sol";import "../ERC1967/ERC1967Upgrade.sol";
File 6 of 8: UniswapV3Pool
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma solidity =0.7.6;import './interfaces/IUniswapV3Pool.sol';import './NoDelegateCall.sol';import './libraries/LowGasSafeMath.sol';import './libraries/SafeCast.sol';import './libraries/Tick.sol';import './libraries/TickBitmap.sol';import './libraries/Position.sol';import './libraries/Oracle.sol';import './libraries/FullMath.sol';import './libraries/FixedPoint128.sol';import './libraries/TransferHelper.sol';import './libraries/TickMath.sol';import './libraries/LiquidityMath.sol';import './libraries/SqrtPriceMath.sol';
File 7 of 8: TetherToken
12345678910111213141516pragma solidity ^0.4.17;/*** @title SafeMath* @dev Math operations with safety checks that throw on error*/library SafeMath {function mul(uint256 a, uint256 b) internal pure returns (uint256) {if (a == 0) {return 0;}uint256 c = a * b;assert(c / a == b);return c;}
File 8 of 8: Gala
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (access/AccessControl.sol)pragma solidity ^0.8.0;import "./IAccessControlUpgradeable.sol";import "../utils/ContextUpgradeable.sol";import "../utils/StringsUpgradeable.sol";import "../utils/introspection/ERC165Upgradeable.sol";import "../proxy/utils/Initializable.sol";/*** @dev Contract module that allows children to implement role-based access* control mechanisms. This is a lightweight version that doesn't allow enumerating role* members except through off-chain means by accessing the contract event logs. Some* applications may benefit from on-chain enumerability, for those cases see* {AccessControlEnumerable}.** Roles are referred to by their `bytes32` identifier. These should be exposed