Transaction Hash:
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 | ||
---|---|---|---|---|---|
0xD4e41946...7F3b661DC |
0.032704784323802362 Eth
Nonce: 63
|
0.027751958211127658 Eth
Nonce: 64
| 0.004952826112674704 | ||
0xdadB0d80...24f783711
Miner
| (BuilderNet) | 32.60919241053020519 Eth | 32.60922262101820519 Eth | 0.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
File 2 of 11: TetherToken
File 3 of 11: Router
File 4 of 11: Core
File 5 of 11: FiatTokenProxy
File 6 of 11: FiatTokenV2_2
File 7 of 11: UniversalRouter
File 8 of 11: PoolManager
File 9 of 11: UniswapV3Pool
File 10 of 11: WETH9
File 11 of 11: UniswapV2Pair
12345678910111213141516/*,▄▓▓██▌ ,╓▄▄▓▓▓▓▓▓▓▓▄▄▄,,,▓██▓███▓▄▓███▓╬╬╬╬╬╬╬╬╬╬╬╬╬▓███▓▄,▄█ ▓██╬╣███████╬▓▀╬╬▓▓▓████████████▓█████▄,▓██▌ ▓██╬╣██████╬▓▌ ██████████████████████▌╙╙▀ⁿ▐████████╬▓████▓▓█╨ ▄ ╟█████████▓▓╬╬╬╬╬▓▓█████▓▄└▀▓▓▄╓ ╟█▓╣█████▓██████▀ ╓█▌ ███████▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬▓██▓▄└▀████▓▄╥ ▐██╬╬██████████╙ Æ▀─ ▓███▀╚╠╬╩▀▀███████▓▓╬╬╬╬╬╬╬╬╬██▄└▀██▓▀▀█████▓╬▓██████▀ ▄█████▒╠" └╙▓██████▓╬╬╬╬╬╬╬╬██▄└▀██▄,└╙▀▀████▌└╙ ^"▀╙╙╙"╙██ @▄ ╙▀███████╬╬╬╬╬╬╬██µ└▀██▓▄, ██▌ ╒ ╙█▓ ]▓█▓╔ ▀███████▓╬╬╬╬╬▓█▌▀█████ ▓ ╟█▌ ]╠██▓░▒╓ ▀████████╬╬╬╬╣█▌▐████ ╓█▀█▌ ,██▌ ╚Å███▓▒▒╠╓ ╙█████████╬╬╬╣█▌└████ ▓█░░▓█ ▀▀▀ φ▒╫████▒▒▒▒╠╓ █████████▓╬╬▓█µ╘███µ ▌▄█▓▄▓▀` ,▀ ,╔╠░▓██████▌╠▒▒▒φ ██████████╬╬██▐████µ╙▓▀` ,▀╙,╔╔φφφ╠░▄▓███████▌░▓╙▒▒▒╠ └██╬███████╬▓█⌐
File 2 of 11: 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 3 of 11: Router
12345678910111213141516// SPDX-License-Identifier: UNLICENSEDpragma 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 {
File 4 of 11: Core
12345678910111213141516// SPDX-License-Identifier: UNLICENSEDpragma 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,
File 5 of 11: FiatTokenProxy
12345678910111213141516pragma 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`.*/
File 6 of 11: FiatTokenV2_2
12345678910111213141516/*** 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.
File 7 of 11: UniversalRouter
12345678910111213141516// SPDX-License-Identifier: GPL-3.0-or-laterpragma solidity ^0.8.24;// Command implementationsimport {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))
File 8 of 11: PoolManager
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma 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";
File 9 of 11: 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 10 of 11: 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 11 of 11: UniswapV2Pair
12345678910111213141516// File: contracts/interfaces/IUniswapV2Pair.solpragma 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);