From 2721ca1fb939c44a435c1de5157fc1373956e596 Mon Sep 17 00:00:00 2001 From: Emily Williams Date: Thu, 3 Oct 2024 23:32:43 -0400 Subject: [PATCH] forge tests --- .../src/entities/actions/uniswap.ts | 7 ++- .../src/utils/constants.ts | 2 - .../test/forge/SwapERC20CallParameters.t.sol | 63 +++++++++++++++++++ .../test/forge/interop.json | 8 +-- .../test/forge/utils/DeployRouter.sol | 3 +- .../test/uniswapTrades.test.ts | 6 +- 6 files changed, 76 insertions(+), 13 deletions(-) diff --git a/sdks/universal-router-sdk/src/entities/actions/uniswap.ts b/sdks/universal-router-sdk/src/entities/actions/uniswap.ts index 2a498567..c6d51d87 100644 --- a/sdks/universal-router-sdk/src/entities/actions/uniswap.ts +++ b/sdks/universal-router-sdk/src/entities/actions/uniswap.ts @@ -382,16 +382,17 @@ function addMixedSwap( if (routePool instanceof V4Pool) { const v4Planner = new V4Planner() + v4Planner.addSettle(inputToken, payerIsUser && i === 0, i == 0 ? amountIn : CONTRACT_BALANCE) v4Planner.addAction(Actions.SWAP_EXACT_IN, [ { currencyIn: inputToken.address ?? ETH_ADDRESS, path: encodeV4RouteToPath(subRoute), - amountIn: i == 0 ? amountIn : CONTRACT_BALANCE, + amountIn: 0, // open delta determined in v4Planner.addSettle() above amountOutMinimum: !isLastSectionInRoute(i) ? 0 : amountOut, }, ]) - v4Planner.addSettle(inputToken, payerIsUser && i === 0) v4Planner.addTake(outputToken, swapRecipient) + planner.addCommand(CommandType.V4_SWAP, [v4Planner.finalize()]) } else if (routePool instanceof V3Pool) { planner.addCommand(CommandType.V3_SWAP_EXACT_IN, [ swapRecipient, // recipient @@ -415,7 +416,7 @@ function addMixedSwap( // perform a token transition (wrap/unwrap if necessary) if (!isLastSectionInRoute(i)) { if (outputToken.isNative && !nextInputToken.isNative) { - planner.addCommand(CommandType.WRAP_ETH, [ROUTER_AS_RECIPIENT, 0]) + planner.addCommand(CommandType.WRAP_ETH, [ROUTER_AS_RECIPIENT, CONTRACT_BALANCE]) } else if (!outputToken.isNative && nextInputToken.isNative) { planner.addCommand(CommandType.UNWRAP_WETH, [ROUTER_AS_RECIPIENT, 0]) } diff --git a/sdks/universal-router-sdk/src/utils/constants.ts b/sdks/universal-router-sdk/src/utils/constants.ts index c066e7ec..34fc8d68 100644 --- a/sdks/universal-router-sdk/src/utils/constants.ts +++ b/sdks/universal-router-sdk/src/utils/constants.ts @@ -17,8 +17,6 @@ type ChainConfig = { const WETH_NOT_SUPPORTED_ON_CHAIN = '0x0000000000000000000000000000000000000000' -export const V4_POOL_MANAGER = '0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f' - // Todo: Change `CHAIN_CONFIGS` to pull the UR address with v4 export const CHAIN_CONFIGS: { [key: number]: ChainConfig } = { // mainnet diff --git a/sdks/universal-router-sdk/test/forge/SwapERC20CallParameters.t.sol b/sdks/universal-router-sdk/test/forge/SwapERC20CallParameters.t.sol index a77aa2b2..3b877d51 100644 --- a/sdks/universal-router-sdk/test/forge/SwapERC20CallParameters.t.sol +++ b/sdks/universal-router-sdk/test/forge/SwapERC20CallParameters.t.sol @@ -714,4 +714,67 @@ contract SwapERC20CallParametersTest is Test, Interop, DeployRouter { assertEq(USDC.balanceOf(address(router)), 0); assertEq(address(router).balance, 0); } + + function testMixedV2ToV4UnwrapWETH() public { + MethodParameters memory params = readFixture(json, "._UNISWAP_MIXED_USDC_DAI_UNWRAP_WETH_V2_TO_V4"); + + uint256 usdcAmount = 1000 ether; + deal(address(USDC), from, usdcAmount); + USDC.approve(address(permit2), usdcAmount); + permit2.approve(address(USDC), address(router), uint160(usdcAmount), uint48(block.timestamp + 1000)); + + assertEq(USDC.balanceOf(from), usdcAmount); + assertEq(DAI.balanceOf(RECIPIENT), 0); + + (bool success,) = address(router).call{value: params.value}(params.data); + require(success, "call failed"); + + assertLe(from.balance, BALANCE - params.value); + assertEq(USDC.balanceOf(from), 0); + assertEq(DAI.balanceOf(address(router)), 0); + assertGt(DAI.balanceOf(RECIPIENT), 0); + assertEq(address(router).balance, 0); + } + + function testMixedV4ToV3WrapETH() public { + MethodParameters memory params = readFixture(json, "._UNISWAP_MIXED_DAI_USDC_WRAP_ETH_V4_TO_V3"); + + uint256 daiAmount = 1000 ether; + deal(address(DAI), from, daiAmount); + DAI.approve(address(permit2), daiAmount); + permit2.approve(address(DAI), address(router), uint160(daiAmount), uint48(block.timestamp + 1000)); + + assertEq(DAI.balanceOf(from), daiAmount); + assertEq(USDC.balanceOf(RECIPIENT), 0); + + (bool success,) = address(router).call{value: params.value}(params.data); + require(success, "call failed"); + + assertLe(from.balance, BALANCE - params.value); + assertEq(DAI.balanceOf(from), 0); + assertEq(USDC.balanceOf(address(router)), 0); + assertGt(USDC.balanceOf(RECIPIENT), 0); + assertEq(address(router).balance, 0); + } + + function testMixedV4ToV2WrapETH() public { + MethodParameters memory params = readFixture(json, "._UNISWAP_MIXED_DAI_USDC_WRAP_ETH_V4_TO_V2"); + + uint256 daiAmount = 1000 ether; + deal(address(DAI), from, daiAmount); + DAI.approve(address(permit2), daiAmount); + permit2.approve(address(DAI), address(router), uint160(daiAmount), uint48(block.timestamp + 1000)); + + assertEq(DAI.balanceOf(from), daiAmount); + assertEq(USDC.balanceOf(RECIPIENT), 0); + + (bool success,) = address(router).call{value: params.value}(params.data); + require(success, "call failed"); + + assertLe(from.balance, BALANCE - params.value); + assertEq(DAI.balanceOf(from), 0); + assertEq(USDC.balanceOf(address(router)), 0); + assertGt(USDC.balanceOf(RECIPIENT), 0); + assertEq(address(router).balance, 0); + } } diff --git a/sdks/universal-router-sdk/test/forge/interop.json b/sdks/universal-router-sdk/test/forge/interop.json index 3c259c76..4062b8ce 100644 --- a/sdks/universal-router-sdk/test/forge/interop.json +++ b/sdks/universal-router-sdk/test/forge/interop.json @@ -172,19 +172,19 @@ "value": "0" }, "_UNISWAP_MIXED_USDC_DAI_UNWRAP_WETH_V3_TO_V4": { - "calldata": "0x24856bc3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002ba0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000bb8c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000", + "calldata": "0x24856bc3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003000c10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002ba0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000bb8c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000309051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003d6741271dc79fa2d9b1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0000000000000000000000000000000000000000000000000000000000000000", "value": "0" }, "_UNISWAP_MIXED_USDC_DAI_UNWRAP_WETH_V2_TO_V4": { - "calldata": "0x24856bc3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002080c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000", + "calldata": "0x24856bc3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003080c10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000309051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038f16ba740050ade5fc000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0000000000000000000000000000000000000000000000000000000000000000", "value": "0" }, "_UNISWAP_MIXED_DAI_USDC_WRAP_ETH_V4_TO_V3": { - "calldata": "0x24856bc30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010bb9be311e00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000bb8a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000", + "calldata": "0x24856bc3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003100b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000309051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000600000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010bb9be311e00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000bb8a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000", "value": "0" }, "_UNISWAP_MIXED_DAI_USDC_WRAP_ETH_V4_TO_V2": { - "calldata": "0x24856bc30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001049ea901be00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "calldata": "0x24856bc3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003100b08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000309051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000600000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001049ea901be00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "value": "0" } } diff --git a/sdks/universal-router-sdk/test/forge/utils/DeployRouter.sol b/sdks/universal-router-sdk/test/forge/utils/DeployRouter.sol index 328fef4b..04c8d842 100644 --- a/sdks/universal-router-sdk/test/forge/utils/DeployRouter.sol +++ b/sdks/universal-router-sdk/test/forge/utils/DeployRouter.sol @@ -99,6 +99,7 @@ contract DeployRouter is Test { abi.encode( [ PoolKey(eth, usdc, 3000, 60, IHooks(address(0))), + PoolKey(eth, dai, 3000, 60, IHooks(address(0))), PoolKey(dai, usdc, 3000, 60, IHooks(address(0))), PoolKey(usdc, weth, 3000, 60, IHooks(address(0))) ] @@ -107,7 +108,7 @@ contract DeployRouter is Test { } function unlockCallback(bytes calldata data) external returns (bytes memory) { - PoolKey[3] memory poolKeys = abi.decode(data, (PoolKey[3])); + PoolKey[4] memory poolKeys = abi.decode(data, (PoolKey[4])); for (uint256 i = 0; i < poolKeys.length; i++) { PoolKey memory poolKey = poolKeys[i]; diff --git a/sdks/universal-router-sdk/test/uniswapTrades.test.ts b/sdks/universal-router-sdk/test/uniswapTrades.test.ts index 4dab5d55..8323de88 100644 --- a/sdks/universal-router-sdk/test/uniswapTrades.test.ts +++ b/sdks/universal-router-sdk/test/uniswapTrades.test.ts @@ -756,13 +756,13 @@ describe('Uniswap', () => { CurrencyAmount.fromRawAmount(USDC, inputUSDC), TradeType.EXACT_INPUT ) - const opts = swapOptions({}) + const opts = swapOptions({ slippageTolerance: new Percent(999, 1000)}) const methodParameters = SwapRouter.swapCallParameters(buildTrade([trade]), opts) registerFixture('_UNISWAP_MIXED_USDC_DAI_UNWRAP_WETH_V2_TO_V4', methodParameters) expect(hexToDecimalString(methodParameters.value)).to.eq('0') }) - it.only('encodes a mixed exactInput v4DAI->ETH->V3WETH->USDC', async () => { + it('encodes a mixed exactInput v4DAI->ETH->V3WETH->USDC', async () => { const inputDAI = utils.parseEther('1000').toString() const trade = await MixedRouteTrade.fromRoute( new MixedRouteSDK([ETH_DAI_V4, WETH_USDC_V3], DAI, USDC), @@ -775,7 +775,7 @@ describe('Uniswap', () => { expect(hexToDecimalString(methodParameters.value)).to.eq('0') }) - it.only('encodes a mixed exactInput v4DAI->ETH->V2WETH->USDC', async () => { + it('encodes a mixed exactInput v4DAI->ETH->V2WETH->USDC', async () => { const inputDAI = utils.parseEther('1000').toString() const trade = await MixedRouteTrade.fromRoute( new MixedRouteSDK([ETH_DAI_V4, WETH_USDC_V2], DAI, USDC),