ETH Price: $3,741.06 (+0.19%)

Transaction Decoder

Block:
22796674 at Jun-27-2025 03:29:23 PM +UTC
Transaction Fee:
0.000881674585362384 ETH $3.30
Gas Used:
181,522 Gas / 4.857122472 Gwei

Emitted Events:

170 Permit2.Approval( owner=[Receiver] 0x79bb842c9e1bf59b42790146267d9bf3263928b6, token=Token, spender=UniversalRouter, amount=1461501637330902918203684832716283019655932542975, expiration=1753630140 )
171 WETH9.Transfer( src=UniswapV3Pool, dst=UniversalRouter, wad=121216584538723266 )
172 Token.Transfer( from=[Receiver] 0x79bb842c9e1bf59b42790146267d9bf3263928b6, to=UniswapV3Pool, value=126650597039351274566251 )
173 UniswapV3Pool.Swap( sender=UniversalRouter, recipient=UniversalRouter, amount0=126650597039351274566251, amount1=-121216584538723266, sqrtPriceX96=77794769867570445298965384, liquidity=45451776839781113089265, tick=-138528 )
174 WETH9.Transfer( src=UniversalRouter, dst=FeeCollector, wad=303041461346808 )
175 WETH9.Withdrawal( src=UniversalRouter, wad=120913543077376458 )

Account State Difference:

  Address   Before After State Difference Code
0x00000000...43aC78BA3
(Uniswap Protocol: Permit2)
0x69ca6139...D8c058837
0x79bB842C...3263928b6
0.009207525401005792 Eth
Nonce: 43
0.129239393893019866 Eth
Nonce: 45
0.120031868492014074From: 0 To: 22892026855592066050609947431602401211538835161166308139
0xC02aaA39...83C756Cc2 2,691,304.75584874472625123 Eth2,691,304.634935201648874772 Eth0.120913543077376458
(BuilderNet)
10.834465181528487599 Eth10.834828225528487599 Eth0.000363044
0xf6E2edc5...F1C9b64B6
(Uniswap V3: DOK 2)

Execution Trace

0x79bb842c9e1bf59b42790146267d9bf3263928b6.e9ae5c53( )
  • Permit2.approve( token=0x69ca61398eCa94D880393522C1Ef5c3D8c058837, spender=0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af, amount=1461501637330902918203684832716283019655932542975, expiration=1753630140 )
  • UniversalRouter.execute( commands=0x00060C, inputs=[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtG+HIerCE5yawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAracphOY7KlNiAOTUiwe9cPYwFiDcAJxDAKqo5siP+jQoOXE8n6tkIPHVswgAAAAAAAAAAAAAAAAAAAAAAAAAAAA==, AAAAAAAAAAAAAAAAwCqqObIj/o0KDlxPJ+rZCDx1bMIAAAAAAAAAAAAAAAAAAAD+4ToQOhDVk7muBrPgXy5+HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ, AAAAAAAAAAAAAAAAebuELJ4b9ZtCeQFGJn2b8yY5KLYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABq0vFGILnZg==], deadline=1751039950 )
    • UniswapV3Pool.swap( recipient=0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af, zeroForOne=True, amountSpecified=126650597039351274566251, sqrtPriceLimitX96=4295128740, data=0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000079BB842C9E1BF59B42790146267D9BF3263928B6000000000000000000000000000000000000000000000000000000000000002B69CA61398ECA94D880393522C1EF5C3D8C058837002710C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000 ) => ( amount0=126650597039351274566251, amount1=-121216584538723266 )
      • WETH9.transfer( dst=0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af, wad=121216584538723266 ) => ( True )
      • Token.balanceOf( account=0xf6E2edc5953Da297947C6C68911E16CF1C9b64B6 ) => ( 46775437009434050406701087 )
      • UniversalRouter.uniswapV3SwapCallback( amount0Delta=126650597039351274566251, amount1Delta=-121216584538723266, data=0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000079BB842C9E1BF59B42790146267D9BF3263928B6000000000000000000000000000000000000000000000000000000000000002B69CA61398ECA94D880393522C1EF5C3D8C058837002710C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000 )
        • Permit2.transferFrom( from=0x79bB842C9e1Bf59B42790146267d9bf3263928b6, to=0xf6E2edc5953Da297947C6C68911E16CF1C9b64B6, amount=126650597039351274566251, token=0x69ca61398eCa94D880393522C1Ef5c3D8c058837 )
          • Token.transferFrom( from=0x79bB842C9e1Bf59B42790146267d9bf3263928b6, to=0xf6E2edc5953Da297947C6C68911E16CF1C9b64B6, value=126650597039351274566251 ) => ( True )
          • Token.balanceOf( account=0xf6E2edc5953Da297947C6C68911E16CF1C9b64B6 ) => ( 46902087606473401681267338 )
          • WETH9.balanceOf( 0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af ) => ( 121216584538723266 )
          • WETH9.transfer( dst=0x000000fee13a103A10D593b9AE06b3e05F2E7E1c, wad=303041461346808 ) => ( True )
          • WETH9.balanceOf( 0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af ) => ( 120913543077376458 )
          • WETH9.withdraw( wad=120913543077376458 )
            • ETH 0.120913543077376458 UniversalRouter.CALL( )
            • ETH 0.120913543077376458 0x79bb842c9e1bf59b42790146267d9bf3263928b6.CALL( )
              File 1 of 6: 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 2 of 6: 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 3 of 6: 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.24;
              // Command implementations
              import {Dispatcher} from './base/Dispatcher.sol';
              import {RouterParameters} from './types/RouterParameters.sol';
              import {PaymentsImmutables, PaymentsParameters} from './modules/PaymentsImmutables.sol';
              import {UniswapImmutables, UniswapParameters} from './modules/uniswap/UniswapImmutables.sol';
              import {V4SwapRouter} from './modules/uniswap/v4/V4SwapRouter.sol';
              import {Commands} from './libraries/Commands.sol';
              import {IUniversalRouter} from './interfaces/IUniversalRouter.sol';
              import {MigratorImmutables, MigratorParameters} from './modules/MigratorImmutables.sol';
              contract UniversalRouter is IUniversalRouter, Dispatcher {
              constructor(RouterParameters memory params)
              UniswapImmutables(
              UniswapParameters(params.v2Factory, params.v3Factory, params.pairInitCodeHash, params.poolInitCodeHash)
              )
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 4 of 6: 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 6: Token
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              // deployed with klik.finance
              pragma solidity ^0.8.0;
              import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
              import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
              contract Token is ERC20, ERC20Burnable {
              address public platform;
              address public creator;
              constructor(
              string memory _name,
              string memory _symbol,
              address _creator,
              address _platform
              ) ERC20(_name, _symbol) {
              platform = _platform;
              creator = _creator;
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 6 of 6: FeeCollector
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: GPL-2.0-or-later
              pragma solidity ^0.8.0;
              import {Owned} from "solmate/auth/Owned.sol";
              import {ERC20} from "solmate/tokens/ERC20.sol";
              import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol";
              import {IFeeCollector} from "./interfaces/IFeeCollector.sol";
              import {IPermit2} from "./external/IPermit2.sol";
              /// @notice The collector of protocol fees that will be used to swap and send to a fee recipient address.
              contract FeeCollector is Owned, IFeeCollector {
              using SafeTransferLib for ERC20;
              address public universalRouter;
              ERC20 public immutable feeToken;
              IPermit2 public immutable permit2;
              uint256 public constant MAX_APPROVAL_AMOUNT = type(uint256).max;
              uint160 public constant MAX_PERMIT2_APPROVAL_AMOUNT = type(uint160).max;
              uint48 public constant MAX_PERMIT2_DEADLINE = type(uint48).max;
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX