ETH Price: $2,781.70 (+2.67%)

Transaction Decoder

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 Code
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)
(Titan Builder)
10.602115132769567821 Eth10.602273216142789161 Eth0.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 )
                      File 1 of 8: UniversalRouter
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: GPL-3.0-or-later
                      pragma solidity ^0.8.17;
                      // Command implementations
                      import {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 IUniversalRouter
                      function execute(bytes calldata commands, bytes[] calldata inputs, uint256 deadline)
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 2 of 8: Permit2
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: AGPL-3.0-only
                      pragma 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;
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 3 of 8: UniswapV3Pool
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: BUSL-1.1
                      pragma 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';
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 4 of 8: WETH9
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // 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;
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 5 of 8: ERC1967Proxy
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: MIT
                      pragma 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: MIT
                      pragma solidity ^0.8.0;
                      import "./IBeacon.sol";
                      import "../Proxy.sol";
                      import "../ERC1967/ERC1967Upgrade.sol";
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 6 of 8: UniswapV3Pool
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: BUSL-1.1
                      pragma 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';
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 7 of 8: TetherToken
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      pragma 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;
                      }
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 8 of 8: Gala
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // 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
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX