@uniswap/universal-router-sdk 4.15.1 → 4.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1015,12 +1015,17 @@ var SwapRouter = /*#__PURE__*/function () {
1015
1015
  */;
1016
1016
  SwapRouter.migrateV3ToV4CallParameters = function migrateV3ToV4CallParameters(options, positionManagerOverride) {
1017
1017
  var v4Pool = options.outputPosition.pool;
1018
- var token0 = options.inputPosition.pool.token0;
1019
- var token1 = options.inputPosition.pool.token1;
1018
+ var v3Token0 = options.inputPosition.pool.token0;
1019
+ var v3Token1 = options.inputPosition.pool.token1;
1020
1020
  var v4PositionManagerAddress = positionManagerOverride != null ? positionManagerOverride : sdkCore.CHAIN_TO_ADDRESSES_MAP[v4Pool.chainId].v4PositionManagerAddress;
1021
+ // owner of the v3 nft must be the receiver of the v4 nft
1021
1022
  // validate the parameters
1022
- !(token0 === v4Pool.token0) ? invariant(false, 'TOKEN0_MISMATCH') : void 0;
1023
- !(token1 === v4Pool.token1) ? invariant(false, 'TOKEN1_MISMATCH') : void 0;
1023
+ if (v4Pool.currency0.isNative) {
1024
+ !(v4Pool.currency0.wrapped.equals(v3Token0) && v4Pool.currency1.equals(v3Token1) || v4Pool.currency0.wrapped.equals(v3Token1) && v4Pool.currency1.equals(v3Token0)) ? invariant(false, 'TOKEN_MISMATCH') : void 0;
1025
+ } else {
1026
+ !(v3Token0 === v4Pool.token0) ? invariant(false, 'TOKEN0_MISMATCH') : void 0;
1027
+ !(v3Token1 === v4Pool.token1) ? invariant(false, 'TOKEN1_MISMATCH') : void 0;
1028
+ }
1024
1029
  !options.v3RemoveLiquidityOptions.liquidityPercentage.equalTo(new sdkCore.Percent(100, 100)) ? invariant(false, 'FULL_REMOVAL_REQUIRED') : void 0;
1025
1030
  !(options.v3RemoveLiquidityOptions.burnToken == true) ? invariant(false, 'BURN_TOKEN_REQUIRED') : void 0;
1026
1031
  !(options.v3RemoveLiquidityOptions.collectOptions.recipient === v4PositionManagerAddress) ? invariant(false, 'RECIPIENT_NOT_POSITION_MANAGER') : void 0;