@uniswap/universal-router-sdk 4.5.1 → 4.5.2
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.
- package/dist/swapRouter.d.ts +1 -1
- package/dist/test/utils/addresses.d.ts +2 -5
- package/dist/universal-router-sdk.cjs.development.js +14 -3
- package/dist/universal-router-sdk.cjs.development.js.map +1 -1
- package/dist/universal-router-sdk.cjs.production.min.js +1 -1
- package/dist/universal-router-sdk.cjs.production.min.js.map +1 -1
- package/dist/universal-router-sdk.esm.js +15 -4
- package/dist/universal-router-sdk.esm.js.map +1 -1
- package/package.json +2 -2
package/dist/swapRouter.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export declare abstract class SwapRouter {
|
|
|
26
26
|
* - input pool and output pool must have the same tokens
|
|
27
27
|
* - V3 NFT must be approved, or valid inputV3NFTPermit must be provided with UR as spender
|
|
28
28
|
*/
|
|
29
|
-
static migrateV3ToV4CallParameters(options: MigrateV3ToV4Options): MethodParameters;
|
|
29
|
+
static migrateV3ToV4CallParameters(options: MigrateV3ToV4Options, positionManagerOverride?: string): MethodParameters;
|
|
30
30
|
/**
|
|
31
31
|
* Encodes a planned route into a method name and parameters for the Router contract.
|
|
32
32
|
* @param planner the planned route
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const FORGE_ROUTER_ADDRESS = "0xe808c1cfeebb6cb36b537b82fa7c9eef31415a05";
|
|
3
|
-
export declare const FORGE_PERMIT2_ADDRESS = "0x4a873bdd49f7f9cc0a5458416a12973fab208f8d";
|
|
1
|
+
export declare const FORGE_V4_POSITION_MANAGER = "0x2e234DAe75C793f67A35089C9d99245E1C58470b";
|
|
4
2
|
export declare const FORGE_SENDER_ADDRESS = "0xcf03dd0a894ef79cb5b601a43c4b25e3ae4c67ed";
|
|
5
3
|
export declare const TEST_RECIPIENT_ADDRESS = "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
|
|
6
4
|
export declare const TEST_FEE_RECIPIENT_ADDRESS = "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
|
|
7
|
-
export declare const PERMIT2_ADDRESS
|
|
8
|
-
export declare const ROUTER_ADDRESS: string;
|
|
5
|
+
export declare const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
|
|
@@ -936,10 +936,11 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
936
936
|
* - input pool and output pool must have the same tokens
|
|
937
937
|
* - V3 NFT must be approved, or valid inputV3NFTPermit must be provided with UR as spender
|
|
938
938
|
*/;
|
|
939
|
-
SwapRouter.migrateV3ToV4CallParameters = function migrateV3ToV4CallParameters(options) {
|
|
939
|
+
SwapRouter.migrateV3ToV4CallParameters = function migrateV3ToV4CallParameters(options, positionManagerOverride) {
|
|
940
940
|
var token0 = options.inputPosition.pool.token0;
|
|
941
941
|
var token1 = options.inputPosition.pool.token1;
|
|
942
|
-
var v4PositionManagerAddress = sdkCore.CHAIN_TO_ADDRESSES_MAP[options.outputPosition.pool.chainId].v4PositionManagerAddress;
|
|
942
|
+
var v4PositionManagerAddress = positionManagerOverride != null ? positionManagerOverride : sdkCore.CHAIN_TO_ADDRESSES_MAP[options.outputPosition.pool.chainId].v4PositionManagerAddress;
|
|
943
|
+
// validate the parameters
|
|
943
944
|
!(token0 === options.outputPosition.pool.token0) ? invariant(false, 'TOKEN0_MISMATCH') : void 0;
|
|
944
945
|
!(token1 === options.outputPosition.pool.token1) ? invariant(false, 'TOKEN1_MISMATCH') : void 0;
|
|
945
946
|
!options.v3RemoveLiquidityOptions.liquidityPercentage.equalTo(new sdkCore.Percent(100, 100)) ? invariant(false, 'FULL_REMOVAL_REQUIRED') : void 0;
|
|
@@ -948,16 +949,26 @@ var SwapRouter = /*#__PURE__*/function () {
|
|
|
948
949
|
!isMint(options.v4AddLiquidityOptions) ? invariant(false, 'MINT_REQUIRED') : void 0;
|
|
949
950
|
!options.v4AddLiquidityOptions.migrate ? invariant(false, 'MIGRATE_REQUIRED') : void 0;
|
|
950
951
|
var planner = new RoutePlanner();
|
|
952
|
+
// add position permit to the universal router planner
|
|
951
953
|
if (options.v3RemoveLiquidityOptions.permit) {
|
|
952
954
|
// permit spender should be UR
|
|
953
955
|
var universalRouterAddress = UNIVERSAL_ROUTER_ADDRESS(exports.UniversalRouterVersion.V2_0, options.inputPosition.pool.chainId);
|
|
954
956
|
!(universalRouterAddress == options.v3RemoveLiquidityOptions.permit.spender) ? invariant(false, 'INVALID_SPENDER') : void 0;
|
|
955
957
|
// don't need to transfer it because v3posm uses isApprovedOrOwner()
|
|
956
958
|
encodeV3PositionPermit(planner, options.v3RemoveLiquidityOptions.permit, options.v3RemoveLiquidityOptions.tokenId);
|
|
959
|
+
// remove permit so that multicall doesnt add it again
|
|
960
|
+
delete options.v3RemoveLiquidityOptions.permit;
|
|
957
961
|
}
|
|
958
962
|
// encode v3 withdraw
|
|
959
963
|
var v3RemoveParams = v3Sdk.NonfungiblePositionManager.removeCallParameters(options.inputPosition, options.v3RemoveLiquidityOptions);
|
|
960
|
-
|
|
964
|
+
var v3Calls = v3Sdk.Multicall.decodeMulticall(v3RemoveParams.calldata);
|
|
965
|
+
for (var _iterator = _createForOfIteratorHelperLoose(v3Calls), _step; !(_step = _iterator()).done;) {
|
|
966
|
+
var v3Call = _step.value;
|
|
967
|
+
// slice selector - 0x + 4 bytes = 10 characters
|
|
968
|
+
var selector = v3Call.slice(0, 10);
|
|
969
|
+
!(selector == v3Sdk.NonfungiblePositionManager.INTERFACE.getSighash('collect') || selector == v3Sdk.NonfungiblePositionManager.INTERFACE.getSighash('decreaseLiquidity') || selector == v3Sdk.NonfungiblePositionManager.INTERFACE.getSighash('burn')) ? invariant(false, 'INVALID_CALL: ' + selector) : void 0;
|
|
970
|
+
planner.addCommand(exports.CommandType.V3_POSITION_MANAGER_CALL, [v3Call]);
|
|
971
|
+
}
|
|
961
972
|
// encode v4 mint
|
|
962
973
|
var v4AddParams = v4Sdk.V4PositionManager.addCallParameters(options.outputPosition, options.v4AddLiquidityOptions);
|
|
963
974
|
planner.addCommand(exports.CommandType.V4_POSITION_CALL, [v4AddParams.calldata]);
|