@@ -187,7 +187,8 @@ function addV2Swap<TInput extends Currency, TOutput extends Currency>(
187
187
// if native, we have to unwrap so keep in the router for now
188
188
routerMustCustody ? ROUTER_AS_RECIPIENT : options . recipient ,
189
189
trade . maximumAmountIn ( options . slippageTolerance ) . quotient . toString ( ) ,
190
- trade . minimumAmountOut ( options . slippageTolerance ) . quotient . toString ( ) ,
190
+ // if router will custody funds, we do aggregated slippage check from rotuer
191
+ routerMustCustody ? 0 : trade . minimumAmountOut ( options . slippageTolerance ) . quotient . toString ( ) ,
191
192
route . path . map ( ( token ) => token . wrapped . address ) ,
192
193
payerIsUser ,
193
194
] )
@@ -223,7 +224,7 @@ function addV3Swap<TInput extends Currency, TOutput extends Currency>(
223
224
planner . addCommand ( CommandType . V3_SWAP_EXACT_IN , [
224
225
routerMustCustody ? ROUTER_AS_RECIPIENT : options . recipient ,
225
226
trade . maximumAmountIn ( options . slippageTolerance ) . quotient . toString ( ) ,
226
- trade . minimumAmountOut ( options . slippageTolerance ) . quotient . toString ( ) ,
227
+ routerMustCustody ? 0 : trade . minimumAmountOut ( options . slippageTolerance ) . quotient . toString ( ) ,
227
228
path ,
228
229
payerIsUser ,
229
230
] )
@@ -269,7 +270,7 @@ function addMixedSwap<TInput extends Currency, TOutput extends Currency>(
269
270
} )
270
271
271
272
const amountIn = trade . maximumAmountIn ( options . slippageTolerance , inputAmount ) . quotient . toString ( )
272
- const amountOut = trade . minimumAmountOut ( options . slippageTolerance , outputAmount ) . quotient . toString ( )
273
+ const amountOut = routerMustCustody ? 0 : trade . minimumAmountOut ( options . slippageTolerance , outputAmount ) . quotient . toString ( )
273
274
274
275
// logic from
275
276
// https://github.com/Uniswap/router-sdk/blob/d8eed164e6c79519983844ca8b6a3fc24ebcb8f8/src/swapRouter.ts#L276
0 commit comments