ETH Price: $3,564.14 (+3.49%)

Transaction Decoder

Block:
22574360 at May-27-2025 01:17:11 PM +UTC
Transaction Fee:
0.004952826112674704 ETH $17.65
Gas Used:
392,344 Gas / 12.623682566 Gwei

Account State Difference:

  Address   Before After State Difference Code
0xD4e41946...7F3b661DC
0.032704784323802362 Eth
Nonce: 63
0.027751958211127658 Eth
Nonce: 64
0.004952826112674704
(BuilderNet)
32.60919241053020519 Eth32.60922262101820519 Eth0.000030210488

Execution Trace

AggregationRouterV6.swap( executor=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, desc=[{name:srcToken, type:address, order:1, indexed:false, value:0xdAC17F958D2ee523a2206206994597C13D831ec7, valueString:0xdAC17F958D2ee523a2206206994597C13D831ec7}, {name:dstToken, type:address, order:2, indexed:false, value:0x67466BE17df832165F8C80a5A120CCc652bD7E69, valueString:0x67466BE17df832165F8C80a5A120CCc652bD7E69}, {name:srcReceiver, type:address, order:3, indexed:false, value:0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, valueString:0x5141B82f5fFDa4c6fE1E372978F1C5427640a190}, {name:dstReceiver, type:address, order:4, indexed:false, value:0xD4e41946BB640EDB25F846F1C1dd7467F3b661DC, valueString:0xD4e41946BB640EDB25F846F1C1dd7467F3b661DC}, {name:amount, type:uint256, order:5, indexed:false, value:11836673399, valueString:11836673399}, {name:minReturnAmount, type:uint256, order:6, indexed:false, value:220560458259991024911290326, valueString:220560458259991024911290326}, {name:flags, type:uint256, order:7, indexed:false, value:0, valueString:0}], data=0x0000000000000007BC00078E00076000071600069B00068100066700066100A0C9E75C48000000000000000064640000000000000000000000000000000000000000000000000006330005E400A007E5C0D20000000000000000000000000000000000000000000000000005C000013051309995855C00494D039AB6792F18E368E530DFF931DAC17F958D2EE523A2206206994597C13D831EC700841D8A7962000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC70000000000000000000000000000000000000000000053E2D6238DA300000032000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFF9A5889F795069A41A8A30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015D66B6AC492066A9893CC07D91D95644AEDD05D03F95E1DBA8AFA0B86991C6218B36C1D19D4A2E9EB0CE3606EB4802E424856BC30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003060B0E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001E00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB4800000000000000000000000000000000000000000000000000000000000001F4000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E824140EE58F146000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB4880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005141B82F5FFDA4C6FE1E372978F1C5427640A190000000000000000000000000000000000000000000000000000000000000000002A00000000000000000000000000000000000000000000000001E8316B22699B46CEE63C1E500C7BBEC68D12A0D1830360F8EC58FA599BA1B0E9BDAC17F958D2EE523A2206206994597C13D831EC700206B4BE0B94041C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2D0E30DB00020D6BDBF78C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC20C20C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC267324985B5014B36B960273353DEB3D96F2F18C26AE4071118002DC6C067324985B5014B36B960273353DEB3D96F2F18C2000000000000000000000000000000000000000000B586CAF384D0373590E172C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC200A0F2FA6B6667466BE17DF832165F8C80A5A120CCC652BD7E69000000000000000000000000000000000000000000B75C31D988BDA1C9803E3B000000000000152D02C7E14AF680000080A06C4ECA2767466BE17DF832165F8C80A5A120CCC652BD7E69111111125421CA6DC452D289314280A0F8842A650020D6BDBF7867466BE17DF832165F8C80A5A120CCC652BD7E69111111125421CA6DC452D289314280A0F8842A65 ) => ( returnAmount=2845167448577688530431208231222343648354413640624171475760490595944829283627, spentAmount=61918035792493285398477267981733045635951558362672487122477745148750442319927 )
  • TetherToken.transferFrom( _from=0xD4e41946BB640EDB25F846F1C1dd7467F3b661DC, _to=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, _value=11836673399 )
  • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.4b64e492( )
    • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.c9e75c48( )
      • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.07e5c0d2( )
        • TetherToken.approve( _spender=0x9995855C00494d039aB6792f18e368e530DFf931, _value=5918336699 )
        • Router.swap( poolKey=[{name:token0, type:address, order:1, indexed:false, value:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, valueString:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48}, {name:token1, type:address, order:2, indexed:false, value:0xdAC17F958D2ee523a2206206994597C13D831ec7, valueString:0xdAC17F958D2ee523a2206206994597C13D831ec7}, {name:config, type:bytes32, order:3, indexed:false, value:0000000000000000000000000000000000000000000053E2D6238DA300000032, valueString:0000000000000000000000000000000000000000000053E2D6238DA300000032}], isToken1=True, amount=5918336699, sqrtRatioLimit=79227682466138141934206691491, skipAhead=0, calculatedAmountThreshold=5861979820 ) => ( delta0=-5921191738, delta1=5918336699 )
          • Core.lock( )
            • Router.locked( id=0 )
            • FiatTokenProxy.a9059cbb( )
              • FiatTokenV2_2.transfer( to=0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af, value=5921191738 ) => ( True )
              • UniversalRouter.execute( commands=0x10, inputs=[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBgsOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKC4aZHGIYs2wdGdSi6esM42ButIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYO43OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6CQUDuWPFGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAoLhpkcYhizbB0Z1KLp6wzjYG60iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFBuC9f/aTG/h43KXjxxUJ2QKGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=] )
                • PoolManager.unlock( data=0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003060B0E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001E00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB4800000000000000000000000000000000000000000000000000000000000001F4000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160EE373A0000000000000000000000000000000000000000000000001E824140EE58F146000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB4880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005141B82F5FFDA4C6FE1E372978F1C5427640A1900000000000000000000000000000000000000000000000000000000000000000 ) => ( result=0x )
                  • UniversalRouter.unlockCallback( data=0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003060B0E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001E00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB4800000000000000000000000000000000000000000000000000000000000001F4000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160EE373A0000000000000000000000000000000000000000000000001E824140EE58F146000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB4880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005141B82F5FFDA4C6FE1E372978F1C5427640A1900000000000000000000000000000000000000000000000000000000000000000 ) => ( 0x )
                  • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.ee63c1e5( )
                    • UniswapV3Pool.swap( recipient=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, zeroForOne=False, amountSpecified=5918336700, sqrtPriceLimitX96=1461446703485210103287273052203988822378723970341, data=0x000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC7 ) => ( amount0=-2220148160964263442, amount1=5918336700 )
                      • WETH9.transfer( dst=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, wad=2220148160964263442 ) => ( True )
                      • TetherToken.balanceOf( who=0xc7bBeC68d12a0d1830360F8Ec58fA599bA1b0e9b ) => ( 2342354607548 )
                      • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.fa461e33( )
                        • TetherToken.transfer( _to=0xc7bBeC68d12a0d1830360F8Ec58fA599bA1b0e9b, _value=5918336700 )
                        • TetherToken.balanceOf( who=0xc7bBeC68d12a0d1830360F8Ec58fA599bA1b0e9b ) => ( 2348272944248 )
                        • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.CALL( )
                        • ETH 2.219181689680269948 WETH9.CALL( )
                        • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.d6bdbf78( )
                          • WETH9.balanceOf( 0x5141B82f5fFDa4c6fE1E372978F1C5427640a190 ) => ( 4439329850644533391 )
                          • WETH9.transfer( dst=0x67324985B5014B36B960273353DEb3D96F2F18C2, wad=4439329850644533390 ) => ( True )
                          • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.6ae40711( )
                            • UniswapV2Pair.STATICCALL( )
                            • WETH9.balanceOf( 0x67324985B5014B36B960273353DEb3D96F2F18C2 ) => ( 470538229224159067070 )
                              File 1 of 11: AggregationRouterV6
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              /*
                              ,▄▓▓██▌ ,╓▄▄▓▓▓▓▓▓▓▓▄▄▄,,
                              ,▓██▓███▓▄▓███▓╬╬╬╬╬╬╬╬╬╬╬╬╬▓███▓▄,
                              ▄█ ▓██╬╣███████╬▓▀╬╬▓▓▓████████████▓█████▄,
                              ▓██▌ ▓██╬╣██████╬▓▌ ██████████████████████▌╙╙▀ⁿ
                              ▐████████╬▓████▓▓█╨ ▄ ╟█████████▓▓╬╬╬╬╬▓▓█████▓▄
                              └▀▓▓▄╓ ╟█▓╣█████▓██████▀ ╓█▌ ███████▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬▓██▓▄
                              └▀████▓▄╥ ▐██╬╬██████████╙ Æ▀─ ▓███▀╚╠╬╩▀▀███████▓▓╬╬╬╬╬╬╬╬╬██▄
                              └▀██▓▀▀█████▓╬▓██████▀ ▄█████▒╠" └╙▓██████▓╬╬╬╬╬╬╬╬██▄
                              └▀██▄,└╙▀▀████▌└╙ ^"▀╙╙╙"╙██ @▄ ╙▀███████╬╬╬╬╬╬╬██µ
                              └▀██▓▄, ██▌ ╒ ╙█▓ ]▓█▓╔ ▀███████▓╬╬╬╬╬▓█▌
                              ▀█████ ▓ ╟█▌ ]╠██▓░▒╓ ▀████████╬╬╬╬╣█▌
                              ▐████ ╓█▀█▌ ,██▌ ╚Å███▓▒▒╠╓ ╙█████████╬╬╬╣█▌
                              └████ ▓█░░▓█ ▀▀▀ φ▒╫████▒▒▒▒╠╓ █████████▓╬╬▓█µ
                              ╘███µ ▌▄█▓▄▓▀` ,▀ ,╔╠░▓██████▌╠▒▒▒φ ██████████╬╬██
                              ▐████µ╙▓▀` ,▀╙,╔╔φφφ╠░▄▓███████▌░▓╙▒▒▒╠ └██╬███████╬▓█⌐
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 2 of 11: 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 3 of 11: Router
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              // SPDX-License-Identifier: UNLICENSED
                              pragma solidity =0.8.28;
                              import {PayableMulticallable} from "./base/PayableMulticallable.sol";
                              import {BaseLocker} from "./base/BaseLocker.sol";
                              import {UsesCore} from "./base/UsesCore.sol";
                              import {ICore} from "./interfaces/ICore.sol";
                              import {PoolKey} from "./types/poolKey.sol";
                              import {NATIVE_TOKEN_ADDRESS} from "./math/constants.sol";
                              import {isPriceIncreasing} from "./math/isPriceIncreasing.sol";
                              import {Permittable} from "./base/Permittable.sol";
                              import {SlippageChecker} from "./base/SlippageChecker.sol";
                              import {SqrtRatio, toSqrtRatio} from "./types/sqrtRatio.sol";
                              import {MIN_SQRT_RATIO, MAX_SQRT_RATIO} from "./types/sqrtRatio.sol";
                              import {FixedPointMathLib} from "solady/utils/FixedPointMathLib.sol";
                              import {CoreLib} from "./libraries/CoreLib.sol";
                              struct RouteNode {
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 4 of 11: Core
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              // SPDX-License-Identifier: UNLICENSED
                              pragma solidity =0.8.28;
                              import {CallPoints, addressToCallPoints} from "./types/callPoints.sol";
                              import {PoolKey} from "./types/poolKey.sol";
                              import {PositionKey, Bounds} from "./types/positionKey.sol";
                              import {FeesPerLiquidity, feesPerLiquidityFromAmounts} from "./types/feesPerLiquidity.sol";
                              import {isPriceIncreasing, SqrtRatioLimitWrongDirection, SwapResult, swapResult} from "./math/swap.sol";
                              import {Position} from "./types/position.sol";
                              import {Ownable} from "solady/auth/Ownable.sol";
                              import {tickToSqrtRatio, sqrtRatioToTick} from "./math/ticks.sol";
                              import {Bitmap} from "./math/bitmap.sol";
                              import {
                              shouldCallBeforeInitializePool,
                              shouldCallAfterInitializePool,
                              shouldCallBeforeUpdatePosition,
                              shouldCallAfterUpdatePosition,
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 5 of 11: FiatTokenProxy
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              pragma solidity ^0.4.24;
                              // File: zos-lib/contracts/upgradeability/Proxy.sol
                              /**
                              * @title Proxy
                              * @dev Implements delegation of calls to other contracts, with proper
                              * forwarding of return values and bubbling of failures.
                              * It defines a fallback function that delegates all calls to the address
                              * returned by the abstract _implementation() internal function.
                              */
                              contract Proxy {
                              /**
                              * @dev Fallback function.
                              * Implemented entirely in `_fallback`.
                              */
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 6 of 11: FiatTokenV2_2
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              /**
                              * SPDX-License-Identifier: Apache-2.0
                              *
                              * Copyright (c) 2023, Circle Internet Financial, LLC.
                              *
                              * Licensed under the Apache License, Version 2.0 (the "License");
                              * you may not use this file except in compliance with the License.
                              * You may obtain a copy of the License at
                              *
                              * http://www.apache.org/licenses/LICENSE-2.0
                              *
                              * Unless required by applicable law or agreed to in writing, software
                              * distributed under the License is distributed on an "AS IS" BASIS,
                              * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                              * See the License for the specific language governing permissions and
                              * limitations under the License.
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 7 of 11: 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 8 of 11: PoolManager
                              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.8.26;
                              import {Hooks} from "./libraries/Hooks.sol";
                              import {Pool} from "./libraries/Pool.sol";
                              import {SafeCast} from "./libraries/SafeCast.sol";
                              import {Position} from "./libraries/Position.sol";
                              import {LPFeeLibrary} from "./libraries/LPFeeLibrary.sol";
                              import {Currency, CurrencyLibrary} from "./types/Currency.sol";
                              import {PoolKey} from "./types/PoolKey.sol";
                              import {TickMath} from "./libraries/TickMath.sol";
                              import {NoDelegateCall} from "./NoDelegateCall.sol";
                              import {IHooks} from "./interfaces/IHooks.sol";
                              import {IPoolManager} from "./interfaces/IPoolManager.sol";
                              import {IUnlockCallback} from "./interfaces/callback/IUnlockCallback.sol";
                              import {ProtocolFees} from "./ProtocolFees.sol";
                              import {ERC6909Claims} from "./ERC6909Claims.sol";
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 9 of 11: 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 10 of 11: 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 11 of 11: UniswapV2Pair
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              // File: contracts/interfaces/IUniswapV2Pair.sol
                              pragma solidity >=0.5.0;
                              interface IUniswapV2Pair {
                              event Approval(address indexed owner, address indexed spender, uint value);
                              event Transfer(address indexed from, address indexed to, uint value);
                              function name() external pure returns (string memory);
                              function symbol() external pure returns (string memory);
                              function decimals() external pure returns (uint8);
                              function totalSupply() external view returns (uint);
                              function balanceOf(address owner) external view returns (uint);
                              function allowance(address owner, address spender) external view returns (uint);
                              function approve(address spender, uint value) external returns (bool);
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX