@uniswap/universal-router-sdk 4.34.2 → 4.35.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.
- package/README.md +104 -96
- package/dist/{entities → cjs/src/entities}/Command.d.ts +12 -12
- package/dist/cjs/src/entities/Command.js +9 -0
- package/dist/cjs/src/entities/Command.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/actions/across.d.ts +21 -21
- package/dist/cjs/src/entities/actions/across.js +7 -0
- package/dist/cjs/src/entities/actions/across.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/actions/index.d.ts +3 -3
- package/dist/cjs/src/entities/actions/index.js +7 -0
- package/dist/cjs/src/entities/actions/index.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/actions/uniswap.d.ts +38 -39
- package/dist/cjs/src/entities/actions/uniswap.js +532 -0
- package/dist/cjs/src/entities/actions/uniswap.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/actions/unwrapWETH.d.ts +12 -12
- package/dist/cjs/src/entities/actions/unwrapWETH.js +33 -0
- package/dist/cjs/src/entities/actions/unwrapWETH.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/index.d.ts +2 -2
- package/dist/cjs/src/entities/index.js +6 -0
- package/dist/cjs/src/entities/index.js.map +1 -0
- package/dist/{index.d.ts → cjs/src/index.d.ts} +12 -12
- package/dist/cjs/src/index.js +33 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/{swapRouter.d.ts → cjs/src/swapRouter.d.ts} +87 -87
- package/dist/cjs/src/swapRouter.js +276 -0
- package/dist/cjs/src/swapRouter.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/commandParser.d.ts +34 -34
- package/dist/cjs/src/utils/commandParser.js +145 -0
- package/dist/cjs/src/utils/commandParser.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/constants.d.ts +33 -33
- package/dist/cjs/src/utils/constants.js +541 -0
- package/dist/cjs/src/utils/constants.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/eip712.d.ts +17 -17
- package/dist/cjs/src/utils/eip712.js +43 -0
- package/dist/cjs/src/utils/eip712.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/getCurrencyAddress.d.ts +2 -2
- package/dist/cjs/src/utils/getCurrencyAddress.js +9 -0
- package/dist/cjs/src/utils/getCurrencyAddress.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/inputTokens.d.ts +23 -23
- package/dist/cjs/src/utils/inputTokens.js +58 -0
- package/dist/cjs/src/utils/inputTokens.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/numbers.d.ts +7 -6
- package/dist/cjs/src/utils/numbers.js +27 -0
- package/dist/cjs/src/utils/numbers.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/pathCurrency.d.ts +3 -3
- package/dist/cjs/src/utils/pathCurrency.js +27 -0
- package/dist/cjs/src/utils/pathCurrency.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/routerCommands.d.ts +77 -72
- package/dist/cjs/src/utils/routerCommands.js +334 -0
- package/dist/cjs/src/utils/routerCommands.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/routerTradeAdapter.d.ts +73 -73
- package/dist/cjs/src/utils/routerTradeAdapter.js +139 -0
- package/dist/cjs/src/utils/routerTradeAdapter.js.map +1 -0
- package/dist/esm/src/entities/Command.d.ts +12 -0
- package/dist/esm/src/entities/Command.js +6 -0
- package/dist/esm/src/entities/Command.js.map +1 -0
- package/dist/esm/src/entities/actions/across.d.ts +21 -0
- package/dist/esm/src/entities/actions/across.js +3 -0
- package/dist/esm/src/entities/actions/across.js.map +1 -0
- package/dist/esm/src/entities/actions/index.d.ts +3 -0
- package/dist/esm/src/entities/actions/index.js +4 -0
- package/dist/esm/src/entities/actions/index.js.map +1 -0
- package/dist/esm/src/entities/actions/uniswap.d.ts +38 -0
- package/dist/esm/src/entities/actions/uniswap.js +528 -0
- package/dist/esm/src/entities/actions/uniswap.js.map +1 -0
- package/dist/esm/src/entities/actions/unwrapWETH.d.ts +12 -0
- package/dist/esm/src/entities/actions/unwrapWETH.js +28 -0
- package/dist/esm/src/entities/actions/unwrapWETH.js.map +1 -0
- package/dist/esm/src/entities/index.d.ts +2 -0
- package/dist/esm/src/entities/index.js +3 -0
- package/dist/esm/src/entities/index.js.map +1 -0
- package/dist/esm/src/index.d.ts +12 -0
- package/dist/esm/src/index.js +9 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/swapRouter.d.ts +87 -0
- package/dist/esm/src/swapRouter.js +271 -0
- package/dist/esm/src/swapRouter.js.map +1 -0
- package/dist/esm/src/utils/commandParser.d.ts +34 -0
- package/dist/esm/src/utils/commandParser.js +137 -0
- package/dist/esm/src/utils/commandParser.js.map +1 -0
- package/dist/esm/src/utils/constants.d.ts +33 -0
- package/dist/esm/src/utils/constants.js +534 -0
- package/dist/esm/src/utils/constants.js.map +1 -0
- package/dist/esm/src/utils/eip712.d.ts +17 -0
- package/dist/esm/src/utils/eip712.js +38 -0
- package/dist/esm/src/utils/eip712.js.map +1 -0
- package/dist/esm/src/utils/getCurrencyAddress.d.ts +2 -0
- package/dist/esm/src/utils/getCurrencyAddress.js +5 -0
- package/dist/esm/src/utils/getCurrencyAddress.js.map +1 -0
- package/dist/esm/src/utils/inputTokens.d.ts +23 -0
- package/dist/esm/src/utils/inputTokens.js +51 -0
- package/dist/esm/src/utils/inputTokens.js.map +1 -0
- package/dist/esm/src/utils/numbers.d.ts +7 -0
- package/dist/esm/src/utils/numbers.js +19 -0
- package/dist/esm/src/utils/numbers.js.map +1 -0
- package/dist/esm/src/utils/pathCurrency.d.ts +3 -0
- package/dist/esm/src/utils/pathCurrency.js +23 -0
- package/dist/esm/src/utils/pathCurrency.js.map +1 -0
- package/dist/esm/src/utils/routerCommands.d.ts +77 -0
- package/dist/esm/src/utils/routerCommands.js +329 -0
- package/dist/esm/src/utils/routerCommands.js.map +1 -0
- package/dist/esm/src/utils/routerTradeAdapter.d.ts +73 -0
- package/dist/esm/src/utils/routerTradeAdapter.js +134 -0
- package/dist/esm/src/utils/routerTradeAdapter.js.map +1 -0
- package/dist/types/src/entities/Command.d.ts +12 -0
- package/dist/types/src/entities/actions/across.d.ts +21 -0
- package/dist/types/src/entities/actions/index.d.ts +3 -0
- package/dist/types/src/entities/actions/uniswap.d.ts +38 -0
- package/dist/types/src/entities/actions/unwrapWETH.d.ts +12 -0
- package/dist/types/src/entities/index.d.ts +2 -0
- package/dist/types/src/index.d.ts +12 -0
- package/dist/types/src/swapRouter.d.ts +87 -0
- package/dist/types/src/utils/commandParser.d.ts +34 -0
- package/dist/types/src/utils/constants.d.ts +33 -0
- package/dist/types/src/utils/eip712.d.ts +17 -0
- package/dist/types/src/utils/getCurrencyAddress.d.ts +2 -0
- package/dist/types/src/utils/inputTokens.d.ts +23 -0
- package/dist/types/src/utils/numbers.d.ts +7 -0
- package/dist/types/src/utils/pathCurrency.d.ts +3 -0
- package/dist/types/src/utils/routerCommands.d.ts +77 -0
- package/dist/types/src/utils/routerTradeAdapter.d.ts +73 -0
- package/package.json +31 -22
- package/dist/index.js +0 -8
- package/dist/test/forge/writeInterop.d.ts +0 -2
- package/dist/test/utils/addresses.d.ts +0 -5
- package/dist/test/utils/hexToDecimalString.d.ts +0 -2
- package/dist/test/utils/permit2.d.ts +0 -7
- package/dist/test/utils/uniswapData.d.ts +0 -24
- package/dist/universal-router-sdk.cjs.development.js +0 -1925
- package/dist/universal-router-sdk.cjs.development.js.map +0 -1
- package/dist/universal-router-sdk.cjs.production.min.js +0 -2
- package/dist/universal-router-sdk.cjs.production.min.js.map +0 -1
- package/dist/universal-router-sdk.esm.js +0 -1912
- package/dist/universal-router-sdk.esm.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uniswap.js","sourceRoot":"","sources":["../../../../../src/entities/actions/uniswap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BigNumberish } from 'ethers';
|
|
2
|
+
import { RoutePlanner } from '../../utils/routerCommands';
|
|
3
|
+
import { Permit2Permit } from '../../utils/inputTokens';
|
|
4
|
+
import { Command, RouterActionType, TradeConfig } from '../Command';
|
|
5
|
+
export declare class UnwrapWETH implements Command {
|
|
6
|
+
readonly tradeType: RouterActionType;
|
|
7
|
+
readonly permit2Data?: Permit2Permit;
|
|
8
|
+
readonly wethAddress: string;
|
|
9
|
+
readonly amount: BigNumberish;
|
|
10
|
+
constructor(amount: BigNumberish, chainId: number, permit2?: Permit2Permit);
|
|
11
|
+
encode(planner: RoutePlanner, _: TradeConfig): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import invariant from 'tiny-invariant';
|
|
2
|
+
import { CommandType } from '../../utils/routerCommands';
|
|
3
|
+
import { encodeInputTokenOptions } from '../../utils/inputTokens';
|
|
4
|
+
import { RouterActionType } from '../Command';
|
|
5
|
+
import { ROUTER_AS_RECIPIENT, WETH_ADDRESS } from '../../utils/constants';
|
|
6
|
+
export class UnwrapWETH {
|
|
7
|
+
constructor(amount, chainId, permit2) {
|
|
8
|
+
this.tradeType = RouterActionType.UnwrapWETH;
|
|
9
|
+
this.wethAddress = WETH_ADDRESS(chainId);
|
|
10
|
+
this.amount = amount;
|
|
11
|
+
if (!!permit2) {
|
|
12
|
+
invariant(permit2.details.token.toLowerCase() === this.wethAddress.toLowerCase(), `must be permitting WETH address: ${this.wethAddress}`);
|
|
13
|
+
invariant(permit2.details.amount >= amount, `Did not permit enough WETH for unwrapWETH transaction`);
|
|
14
|
+
this.permit2Data = permit2;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
encode(planner, _) {
|
|
18
|
+
encodeInputTokenOptions(planner, {
|
|
19
|
+
permit2Permit: this.permit2Data,
|
|
20
|
+
permit2TransferFrom: {
|
|
21
|
+
token: this.wethAddress,
|
|
22
|
+
amount: this.amount.toString(),
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
planner.addCommand(CommandType.UNWRAP_WETH, [ROUTER_AS_RECIPIENT, this.amount]);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=unwrapWETH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unwrapWETH.js","sourceRoot":"","sources":["../../../../../src/entities/actions/unwrapWETH.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,OAAO,EAAgB,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAiB,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAW,gBAAgB,EAAe,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzE,MAAM,OAAO,UAAU;IAMrB,YAAY,MAAoB,EAAE,OAAe,EAAE,OAAuB;QALjE,cAAS,GAAqB,gBAAgB,CAAC,UAAU,CAAA;QAMhE,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAEpB,IAAI,CAAC,CAAC,OAAO,EAAE;YACb,SAAS,CACP,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EACtE,oCAAoC,IAAI,CAAC,WAAW,EAAE,CACvD,CAAA;YACD,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE,uDAAuD,CAAC,CAAA;YACpG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAA;SAC3B;IACH,CAAC;IAED,MAAM,CAAC,OAAqB,EAAE,CAAc;QAC1C,uBAAuB,CAAC,OAAO,EAAE;YAC/B,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,mBAAmB,EAAE;gBACnB,KAAK,EAAE,IAAI,CAAC,WAAW;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;aAC/B;SACF,CAAC,CAAA;QACF,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACjF,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { SwapRouter } from './swapRouter';
|
|
2
|
+
export type { MigrateV3ToV4Options, SignedRouteOptions, EIP712Payload } from './swapRouter';
|
|
3
|
+
export * from './entities';
|
|
4
|
+
export * from './utils/routerTradeAdapter';
|
|
5
|
+
export { RoutePlanner, CommandType, COMMAND_DEFINITION, Parser, Subparser } from './utils/routerCommands';
|
|
6
|
+
export type { CommandDefinition, ParamType } from './utils/routerCommands';
|
|
7
|
+
export { UNIVERSAL_ROUTER_CREATION_BLOCK, UNIVERSAL_ROUTER_ADDRESS, SWAP_PROXY_ADDRESS, ROUTER_AS_RECIPIENT, WETH_ADDRESS, UniversalRouterVersion, } from './utils/constants';
|
|
8
|
+
export { CommandParser, GenericCommandParser } from './utils/commandParser';
|
|
9
|
+
export type { UniversalRouterCommand, UniversalRouterCall, Param, CommandsDefinition } from './utils/commandParser';
|
|
10
|
+
export type { Permit2Permit } from './utils/inputTokens';
|
|
11
|
+
export { NONCE_SKIP_CHECK, generateNonce, EXECUTE_SIGNED_TYPES, getUniversalRouterDomain } from './utils/eip712';
|
|
12
|
+
export { URVersion, isAtLeastV2_1_1 } from '@uniswap/v4-sdk';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { SwapRouter } from './swapRouter';
|
|
2
|
+
export * from './entities';
|
|
3
|
+
export * from './utils/routerTradeAdapter';
|
|
4
|
+
export { RoutePlanner, CommandType, COMMAND_DEFINITION, Parser, Subparser } from './utils/routerCommands';
|
|
5
|
+
export { UNIVERSAL_ROUTER_CREATION_BLOCK, UNIVERSAL_ROUTER_ADDRESS, SWAP_PROXY_ADDRESS, ROUTER_AS_RECIPIENT, WETH_ADDRESS, UniversalRouterVersion, } from './utils/constants';
|
|
6
|
+
export { CommandParser, GenericCommandParser } from './utils/commandParser';
|
|
7
|
+
export { NONCE_SKIP_CHECK, generateNonce, EXECUTE_SIGNED_TYPES, getUniversalRouterDomain } from './utils/eip712';
|
|
8
|
+
export { URVersion, isAtLeastV2_1_1 } from '@uniswap/v4-sdk';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,cAAc,YAAY,CAAA;AAC1B,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEzG,OAAO,EACL,+BAA+B,EAC/B,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAG3E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAChH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import { BigNumber, BigNumberish } from 'ethers';
|
|
3
|
+
import { MethodParameters, Position as V3Position, RemoveLiquidityOptions as V3RemoveLiquidityOptions } from '@uniswap/v3-sdk';
|
|
4
|
+
import { Position as V4Position, AddLiquidityOptions as V4AddLiquidityOptions } from '@uniswap/v4-sdk';
|
|
5
|
+
import { Trade as RouterTrade } from '@uniswap/router-sdk';
|
|
6
|
+
import { Currency, TradeType } from '@uniswap/sdk-core';
|
|
7
|
+
import { SwapOptions } from './entities/actions/uniswap';
|
|
8
|
+
import { AcrossV4DepositV3Params } from './entities/actions/across';
|
|
9
|
+
import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer';
|
|
10
|
+
export type SwapRouterConfig = {
|
|
11
|
+
sender?: string;
|
|
12
|
+
deadline?: BigNumberish;
|
|
13
|
+
};
|
|
14
|
+
export type SignedRouteOptions = {
|
|
15
|
+
intent: string;
|
|
16
|
+
data: string;
|
|
17
|
+
sender: string;
|
|
18
|
+
nonce?: string;
|
|
19
|
+
};
|
|
20
|
+
export type EIP712Payload = {
|
|
21
|
+
domain: TypedDataDomain;
|
|
22
|
+
types: Record<string, TypedDataField[]>;
|
|
23
|
+
value: {
|
|
24
|
+
commands: string;
|
|
25
|
+
inputs: string[];
|
|
26
|
+
intent: string;
|
|
27
|
+
data: string;
|
|
28
|
+
sender: string;
|
|
29
|
+
nonce: string;
|
|
30
|
+
deadline: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export interface MigrateV3ToV4Options {
|
|
34
|
+
inputPosition: V3Position;
|
|
35
|
+
outputPosition: V4Position;
|
|
36
|
+
v3RemoveLiquidityOptions: V3RemoveLiquidityOptions;
|
|
37
|
+
v4AddLiquidityOptions: V4AddLiquidityOptions;
|
|
38
|
+
}
|
|
39
|
+
export declare abstract class SwapRouter {
|
|
40
|
+
static INTERFACE: Interface;
|
|
41
|
+
static PROXY_INTERFACE: Interface;
|
|
42
|
+
static swapCallParameters(trades: RouterTrade<Currency, Currency, TradeType>, options: SwapOptions, bridgeOptions?: AcrossV4DepositV3Params[]): MethodParameters;
|
|
43
|
+
/**
|
|
44
|
+
* Generate EIP712 payload for signed execution (no signing performed)
|
|
45
|
+
* Decodes existing execute() calldata and prepares it for signing
|
|
46
|
+
*
|
|
47
|
+
* @param calldata The calldata from swapCallParameters() or similar
|
|
48
|
+
* @param signedOptions Options for signed execution (intent, data, sender, nonce)
|
|
49
|
+
* @param deadline The deadline timestamp
|
|
50
|
+
* @param chainId The chain ID
|
|
51
|
+
* @param routerAddress The Universal Router contract address
|
|
52
|
+
* @returns EIP712 payload ready to be signed externally
|
|
53
|
+
*/
|
|
54
|
+
static getExecuteSignedPayload(calldata: string, signedOptions: SignedRouteOptions, deadline: BigNumberish, chainId: number, routerAddress: string): EIP712Payload;
|
|
55
|
+
/**
|
|
56
|
+
* Encode executeSigned() call with signature
|
|
57
|
+
*
|
|
58
|
+
* @param calldata The original calldata from swapCallParameters()
|
|
59
|
+
* @param signature The signature obtained from external signing
|
|
60
|
+
* @param signedOptions The same options used in getExecuteSignedPayload()
|
|
61
|
+
* @param deadline The deadline timestamp
|
|
62
|
+
* @param nativeCurrencyValue The native currency value (ETH) to send
|
|
63
|
+
* @returns Method parameters for executeSigned()
|
|
64
|
+
*/
|
|
65
|
+
static encodeExecuteSigned(calldata: string, signature: string, signedOptions: SignedRouteOptions, deadline: BigNumberish, nativeCurrencyValue?: BigNumber): MethodParameters;
|
|
66
|
+
/**
|
|
67
|
+
* Builds the call parameters for a migration from a V3 position to a V4 position.
|
|
68
|
+
* Some requirements of the parameters:
|
|
69
|
+
* - v3RemoveLiquidityOptions.collectOptions.recipient must equal v4PositionManager
|
|
70
|
+
* - v3RemoveLiquidityOptions.liquidityPercentage must be 100%
|
|
71
|
+
* - input pool and output pool must have the same tokens
|
|
72
|
+
* - V3 NFT must be approved, or valid inputV3NFTPermit must be provided with UR as spender
|
|
73
|
+
*/
|
|
74
|
+
static migrateV3ToV4CallParameters(options: MigrateV3ToV4Options, positionManagerOverride?: string): MethodParameters;
|
|
75
|
+
/**
|
|
76
|
+
* Encodes a planned route into a method name and parameters for the Router contract.
|
|
77
|
+
* @param planner the planned route
|
|
78
|
+
* @param nativeCurrencyValue the native currency value of the planned route
|
|
79
|
+
* @param config the router config
|
|
80
|
+
*/
|
|
81
|
+
private static encodePlan;
|
|
82
|
+
/**
|
|
83
|
+
* Encodes a planned route into calldata targeting the SwapProxy contract.
|
|
84
|
+
* The proxy pulls ERC20 tokens from the user into the UR, then executes commands.
|
|
85
|
+
*/
|
|
86
|
+
private static encodeProxyPlan;
|
|
87
|
+
}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import invariant from 'tiny-invariant';
|
|
2
|
+
import UniversalRouter from '@uniswap/universal-router/artifacts/contracts/UniversalRouter.sol/UniversalRouter.json';
|
|
3
|
+
import { Interface } from '@ethersproject/abi';
|
|
4
|
+
import { BigNumber } from 'ethers';
|
|
5
|
+
import { Multicall, NonfungiblePositionManager as V3PositionManager, } from '@uniswap/v3-sdk';
|
|
6
|
+
import { V4PositionManager, Pool as V4Pool, URVersion, } from '@uniswap/v4-sdk';
|
|
7
|
+
import { Percent, CHAIN_TO_ADDRESSES_MAP } from '@uniswap/sdk-core';
|
|
8
|
+
import { UniswapTrade, TokenTransferMode } from './entities/actions/uniswap';
|
|
9
|
+
import { RoutePlanner, CommandType } from './utils/routerCommands';
|
|
10
|
+
import { encodePermit, encodeV3PositionPermit } from './utils/inputTokens';
|
|
11
|
+
import { UNIVERSAL_ROUTER_ADDRESS, UniversalRouterVersion } from './utils/constants';
|
|
12
|
+
import { getUniversalRouterDomain, EXECUTE_SIGNED_TYPES, generateNonce } from './utils/eip712';
|
|
13
|
+
function isMint(options) {
|
|
14
|
+
return Object.keys(options).some((k) => k === 'recipient');
|
|
15
|
+
}
|
|
16
|
+
const UR_VERSION_MAP = {
|
|
17
|
+
[URVersion.V2_0]: UniversalRouterVersion.V2_0,
|
|
18
|
+
[URVersion.V2_1_1]: UniversalRouterVersion.V2_1_1,
|
|
19
|
+
};
|
|
20
|
+
function toUniversalRouterVersion(urVersion) {
|
|
21
|
+
if (urVersion === undefined)
|
|
22
|
+
return undefined;
|
|
23
|
+
const mapped = UR_VERSION_MAP[urVersion];
|
|
24
|
+
if (!mapped)
|
|
25
|
+
throw new Error(`Unsupported URVersion: ${urVersion}`);
|
|
26
|
+
return mapped;
|
|
27
|
+
}
|
|
28
|
+
export class SwapRouter {
|
|
29
|
+
static swapCallParameters(trades, options, bridgeOptions // Optional bridge parameters
|
|
30
|
+
) {
|
|
31
|
+
// TODO: use permit if signature included in swapOptions
|
|
32
|
+
const planner = new RoutePlanner();
|
|
33
|
+
const trade = new UniswapTrade(trades, options);
|
|
34
|
+
const inputCurrency = trade.trade.inputAmount.currency;
|
|
35
|
+
if (options.tokenTransferMode === TokenTransferMode.ApproveProxy) {
|
|
36
|
+
invariant(!inputCurrency.isNative, 'PROXY_NATIVE_INPUT: SwapProxy only supports ERC20 input');
|
|
37
|
+
invariant(!!options.chainId, 'PROXY_MISSING_CHAIN_ID: chainId required when tokenTransferMode is ApproveProxy');
|
|
38
|
+
invariant(!options.inputTokenPermit, 'PROXY_PERMIT_CONFLICT: Permit2 not used with SwapProxy');
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
invariant(!(inputCurrency.isNative && !!options.inputTokenPermit), 'NATIVE_INPUT_PERMIT');
|
|
42
|
+
if (options.inputTokenPermit) {
|
|
43
|
+
encodePermit(planner, options.inputTokenPermit);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const nativeCurrencyValue = inputCurrency.isNative
|
|
47
|
+
? BigNumber.from(trade.trade.maximumAmountIn(options.slippageTolerance).quotient.toString())
|
|
48
|
+
: BigNumber.from(0);
|
|
49
|
+
trade.encode(planner, { allowRevert: false });
|
|
50
|
+
// Add bridge commands if provided
|
|
51
|
+
if (bridgeOptions) {
|
|
52
|
+
for (const bridge of bridgeOptions) {
|
|
53
|
+
planner.addAcrossBridge(bridge);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (options.tokenTransferMode === TokenTransferMode.ApproveProxy) {
|
|
57
|
+
return SwapRouter.encodeProxyPlan(planner, trade, options);
|
|
58
|
+
}
|
|
59
|
+
return SwapRouter.encodePlan(planner, nativeCurrencyValue, {
|
|
60
|
+
deadline: options.deadlineOrPreviousBlockhash ? BigNumber.from(options.deadlineOrPreviousBlockhash) : undefined,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Generate EIP712 payload for signed execution (no signing performed)
|
|
65
|
+
* Decodes existing execute() calldata and prepares it for signing
|
|
66
|
+
*
|
|
67
|
+
* @param calldata The calldata from swapCallParameters() or similar
|
|
68
|
+
* @param signedOptions Options for signed execution (intent, data, sender, nonce)
|
|
69
|
+
* @param deadline The deadline timestamp
|
|
70
|
+
* @param chainId The chain ID
|
|
71
|
+
* @param routerAddress The Universal Router contract address
|
|
72
|
+
* @returns EIP712 payload ready to be signed externally
|
|
73
|
+
*/
|
|
74
|
+
static getExecuteSignedPayload(calldata, signedOptions, deadline, chainId, routerAddress) {
|
|
75
|
+
// Decode the execute() calldata to extract commands and inputs
|
|
76
|
+
// Try to decode with deadline first, then without
|
|
77
|
+
let decoded;
|
|
78
|
+
let commands;
|
|
79
|
+
let inputs;
|
|
80
|
+
try {
|
|
81
|
+
decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[],uint256)', calldata);
|
|
82
|
+
commands = decoded.commands;
|
|
83
|
+
inputs = decoded.inputs;
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
// Try without deadline
|
|
87
|
+
decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[])', calldata);
|
|
88
|
+
commands = decoded.commands;
|
|
89
|
+
inputs = decoded.inputs;
|
|
90
|
+
}
|
|
91
|
+
// Use provided nonce or generate random one
|
|
92
|
+
const nonce = signedOptions.nonce || generateNonce();
|
|
93
|
+
// sender is provided directly (address(0) = skip verification)
|
|
94
|
+
const sender = signedOptions.sender;
|
|
95
|
+
const domain = getUniversalRouterDomain(chainId, routerAddress);
|
|
96
|
+
const intent = signedOptions.intent;
|
|
97
|
+
const data = signedOptions.data;
|
|
98
|
+
const deadlineStr = BigNumber.from(deadline).toString();
|
|
99
|
+
const value = {
|
|
100
|
+
commands,
|
|
101
|
+
inputs,
|
|
102
|
+
intent,
|
|
103
|
+
data,
|
|
104
|
+
sender,
|
|
105
|
+
nonce,
|
|
106
|
+
deadline: deadlineStr,
|
|
107
|
+
};
|
|
108
|
+
return {
|
|
109
|
+
domain,
|
|
110
|
+
types: EXECUTE_SIGNED_TYPES,
|
|
111
|
+
value,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Encode executeSigned() call with signature
|
|
116
|
+
*
|
|
117
|
+
* @param calldata The original calldata from swapCallParameters()
|
|
118
|
+
* @param signature The signature obtained from external signing
|
|
119
|
+
* @param signedOptions The same options used in getExecuteSignedPayload()
|
|
120
|
+
* @param deadline The deadline timestamp
|
|
121
|
+
* @param nativeCurrencyValue The native currency value (ETH) to send
|
|
122
|
+
* @returns Method parameters for executeSigned()
|
|
123
|
+
*/
|
|
124
|
+
static encodeExecuteSigned(calldata, signature, signedOptions, deadline, nativeCurrencyValue = BigNumber.from(0)) {
|
|
125
|
+
// Decode the execute() calldata to extract commands and inputs
|
|
126
|
+
// Try to decode with deadline first, then without
|
|
127
|
+
let decoded;
|
|
128
|
+
let commands;
|
|
129
|
+
let inputs;
|
|
130
|
+
try {
|
|
131
|
+
decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[],uint256)', calldata);
|
|
132
|
+
commands = decoded.commands;
|
|
133
|
+
inputs = decoded.inputs;
|
|
134
|
+
}
|
|
135
|
+
catch (e) {
|
|
136
|
+
// Try without deadline
|
|
137
|
+
decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[])', calldata);
|
|
138
|
+
commands = decoded.commands;
|
|
139
|
+
inputs = decoded.inputs;
|
|
140
|
+
}
|
|
141
|
+
// Use provided nonce (must match what was signed)
|
|
142
|
+
// Nonce must match what was signed - require it to be provided
|
|
143
|
+
if (!signedOptions.nonce) {
|
|
144
|
+
throw new Error('Nonce is required for encodeExecuteSigned - use the nonce from getExecuteSignedPayload');
|
|
145
|
+
}
|
|
146
|
+
const nonce = signedOptions.nonce;
|
|
147
|
+
// Determine verifySender based on sender address
|
|
148
|
+
const verifySender = signedOptions.sender !== '0x0000000000000000000000000000000000000000';
|
|
149
|
+
// Encode executeSigned function call using the Universal Router v2.1 ABI
|
|
150
|
+
const signedCalldata = SwapRouter.INTERFACE.encodeFunctionData('executeSigned', [
|
|
151
|
+
commands,
|
|
152
|
+
inputs,
|
|
153
|
+
signedOptions.intent,
|
|
154
|
+
signedOptions.data,
|
|
155
|
+
verifySender,
|
|
156
|
+
nonce,
|
|
157
|
+
signature,
|
|
158
|
+
deadline,
|
|
159
|
+
]);
|
|
160
|
+
return { calldata: signedCalldata, value: nativeCurrencyValue.toHexString() };
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Builds the call parameters for a migration from a V3 position to a V4 position.
|
|
164
|
+
* Some requirements of the parameters:
|
|
165
|
+
* - v3RemoveLiquidityOptions.collectOptions.recipient must equal v4PositionManager
|
|
166
|
+
* - v3RemoveLiquidityOptions.liquidityPercentage must be 100%
|
|
167
|
+
* - input pool and output pool must have the same tokens
|
|
168
|
+
* - V3 NFT must be approved, or valid inputV3NFTPermit must be provided with UR as spender
|
|
169
|
+
*/
|
|
170
|
+
static migrateV3ToV4CallParameters(options, positionManagerOverride) {
|
|
171
|
+
const v4Pool = options.outputPosition.pool;
|
|
172
|
+
const v3Token0 = options.inputPosition.pool.token0;
|
|
173
|
+
const v3Token1 = options.inputPosition.pool.token1;
|
|
174
|
+
const v4PositionManagerAddress = positionManagerOverride !== null && positionManagerOverride !== void 0 ? positionManagerOverride : CHAIN_TO_ADDRESSES_MAP[v4Pool.chainId].v4PositionManagerAddress;
|
|
175
|
+
// owner of the v3 nft must be the receiver of the v4 nft
|
|
176
|
+
// validate the parameters
|
|
177
|
+
if (v4Pool.currency0.isNative) {
|
|
178
|
+
invariant((v4Pool.currency0.wrapped.equals(v3Token0) && v4Pool.currency1.equals(v3Token1)) ||
|
|
179
|
+
(v4Pool.currency0.wrapped.equals(v3Token1) && v4Pool.currency1.equals(v3Token0)), 'TOKEN_MISMATCH');
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
invariant(v3Token0 === v4Pool.token0, 'TOKEN0_MISMATCH');
|
|
183
|
+
invariant(v3Token1 === v4Pool.token1, 'TOKEN1_MISMATCH');
|
|
184
|
+
}
|
|
185
|
+
invariant(options.v3RemoveLiquidityOptions.liquidityPercentage.equalTo(new Percent(100, 100)), 'FULL_REMOVAL_REQUIRED');
|
|
186
|
+
invariant(options.v3RemoveLiquidityOptions.burnToken == true, 'BURN_TOKEN_REQUIRED');
|
|
187
|
+
invariant(options.v3RemoveLiquidityOptions.collectOptions.recipient === v4PositionManagerAddress, 'RECIPIENT_NOT_POSITION_MANAGER');
|
|
188
|
+
invariant(isMint(options.v4AddLiquidityOptions), 'MINT_REQUIRED');
|
|
189
|
+
invariant(options.v4AddLiquidityOptions.migrate, 'MIGRATE_REQUIRED');
|
|
190
|
+
const planner = new RoutePlanner();
|
|
191
|
+
// to prevent reentrancy by the pool hook, we initialize the v4 pool before moving funds
|
|
192
|
+
if (options.v4AddLiquidityOptions.createPool) {
|
|
193
|
+
const poolKey = V4Pool.getPoolKey(v4Pool.currency0, v4Pool.currency1, v4Pool.fee, v4Pool.tickSpacing, v4Pool.hooks);
|
|
194
|
+
planner.addCommand(CommandType.V4_INITIALIZE_POOL, [poolKey, v4Pool.sqrtRatioX96.toString()]);
|
|
195
|
+
// remove createPool setting, so that it doesnt get encoded again later
|
|
196
|
+
delete options.v4AddLiquidityOptions.createPool;
|
|
197
|
+
}
|
|
198
|
+
// add position permit to the universal router planner
|
|
199
|
+
if (options.v3RemoveLiquidityOptions.permit) {
|
|
200
|
+
// permit spender should be UR
|
|
201
|
+
const universalRouterAddress = UNIVERSAL_ROUTER_ADDRESS(UniversalRouterVersion.V2_0, options.inputPosition.pool.chainId);
|
|
202
|
+
invariant(universalRouterAddress == options.v3RemoveLiquidityOptions.permit.spender, 'INVALID_SPENDER');
|
|
203
|
+
// don't need to transfer it because v3posm uses isApprovedOrOwner()
|
|
204
|
+
encodeV3PositionPermit(planner, options.v3RemoveLiquidityOptions.permit, options.v3RemoveLiquidityOptions.tokenId);
|
|
205
|
+
// remove permit so that multicall doesnt add it again
|
|
206
|
+
delete options.v3RemoveLiquidityOptions.permit;
|
|
207
|
+
}
|
|
208
|
+
// encode v3 withdraw
|
|
209
|
+
const v3RemoveParams = V3PositionManager.removeCallParameters(options.inputPosition, options.v3RemoveLiquidityOptions);
|
|
210
|
+
const v3Calls = Multicall.decodeMulticall(v3RemoveParams.calldata);
|
|
211
|
+
for (const v3Call of v3Calls) {
|
|
212
|
+
// slice selector - 0x + 4 bytes = 10 characters
|
|
213
|
+
const selector = v3Call.slice(0, 10);
|
|
214
|
+
invariant(selector == V3PositionManager.INTERFACE.getSighash('collect') ||
|
|
215
|
+
selector == V3PositionManager.INTERFACE.getSighash('decreaseLiquidity') ||
|
|
216
|
+
selector == V3PositionManager.INTERFACE.getSighash('burn'), 'INVALID_V3_CALL: ' + selector);
|
|
217
|
+
planner.addCommand(CommandType.V3_POSITION_MANAGER_CALL, [v3Call]);
|
|
218
|
+
}
|
|
219
|
+
// encode v4 mint
|
|
220
|
+
const v4AddParams = V4PositionManager.addCallParameters(options.outputPosition, options.v4AddLiquidityOptions);
|
|
221
|
+
// only modifyLiquidities can be called by the UniversalRouter
|
|
222
|
+
const selector = v4AddParams.calldata.slice(0, 10);
|
|
223
|
+
invariant(selector == V4PositionManager.INTERFACE.getSighash('modifyLiquidities'), 'INVALID_V4_CALL: ' + selector);
|
|
224
|
+
planner.addCommand(CommandType.V4_POSITION_MANAGER_CALL, [v4AddParams.calldata]);
|
|
225
|
+
return SwapRouter.encodePlan(planner, BigNumber.from(0), {
|
|
226
|
+
deadline: BigNumber.from(options.v4AddLiquidityOptions.deadline),
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Encodes a planned route into a method name and parameters for the Router contract.
|
|
231
|
+
* @param planner the planned route
|
|
232
|
+
* @param nativeCurrencyValue the native currency value of the planned route
|
|
233
|
+
* @param config the router config
|
|
234
|
+
*/
|
|
235
|
+
static encodePlan(planner, nativeCurrencyValue, config = {}) {
|
|
236
|
+
const { commands, inputs } = planner;
|
|
237
|
+
const functionSignature = !!config.deadline ? 'execute(bytes,bytes[],uint256)' : 'execute(bytes,bytes[])';
|
|
238
|
+
const parameters = !!config.deadline ? [commands, inputs, config.deadline] : [commands, inputs];
|
|
239
|
+
const calldata = SwapRouter.INTERFACE.encodeFunctionData(functionSignature, parameters);
|
|
240
|
+
return { calldata, value: nativeCurrencyValue.toHexString() };
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Encodes a planned route into calldata targeting the SwapProxy contract.
|
|
244
|
+
* The proxy pulls ERC20 tokens from the user into the UR, then executes commands.
|
|
245
|
+
*/
|
|
246
|
+
static encodeProxyPlan(planner, trade, options) {
|
|
247
|
+
var _a;
|
|
248
|
+
const { commands, inputs } = planner;
|
|
249
|
+
const urVersion = (_a = toUniversalRouterVersion(options.urVersion)) !== null && _a !== void 0 ? _a : UniversalRouterVersion.V2_0;
|
|
250
|
+
const routerAddress = UNIVERSAL_ROUTER_ADDRESS(urVersion, options.chainId);
|
|
251
|
+
const inputToken = trade.trade.inputAmount.currency.address;
|
|
252
|
+
const inputAmount = BigNumber.from(trade.trade.maximumAmountIn(options.slippageTolerance).quotient.toString());
|
|
253
|
+
const deadline = options.deadlineOrPreviousBlockhash
|
|
254
|
+
? BigNumber.from(options.deadlineOrPreviousBlockhash)
|
|
255
|
+
: BigNumber.from(Math.floor(Date.now() / 1000) + 1800); // 30 min default
|
|
256
|
+
const calldata = SwapRouter.PROXY_INTERFACE.encodeFunctionData('execute', [
|
|
257
|
+
routerAddress,
|
|
258
|
+
inputToken,
|
|
259
|
+
inputAmount,
|
|
260
|
+
commands,
|
|
261
|
+
inputs,
|
|
262
|
+
deadline,
|
|
263
|
+
]);
|
|
264
|
+
return { calldata, value: BigNumber.from(0).toHexString() };
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
SwapRouter.INTERFACE = new Interface(UniversalRouter.abi);
|
|
268
|
+
SwapRouter.PROXY_INTERFACE = new Interface([
|
|
269
|
+
'function execute(address router, address token, uint256 amount, bytes calldata commands, bytes[] calldata inputs, uint256 deadline) external',
|
|
270
|
+
]);
|
|
271
|
+
//# sourceMappingURL=swapRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swapRouter.js","sourceRoot":"","sources":["../../../src/swapRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import { CommandType, CommandDefinition } from '../utils/routerCommands';
|
|
3
|
+
export type Param = {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly value: any;
|
|
6
|
+
};
|
|
7
|
+
export type UniversalRouterCommand = {
|
|
8
|
+
readonly commandName: string;
|
|
9
|
+
readonly commandType: CommandType;
|
|
10
|
+
readonly params: readonly Param[];
|
|
11
|
+
};
|
|
12
|
+
export type UniversalRouterCall = {
|
|
13
|
+
readonly commands: readonly UniversalRouterCommand[];
|
|
14
|
+
};
|
|
15
|
+
export type V3PathItem = {
|
|
16
|
+
readonly tokenIn: string;
|
|
17
|
+
readonly tokenOut: string;
|
|
18
|
+
readonly fee: number;
|
|
19
|
+
};
|
|
20
|
+
export interface CommandsDefinition {
|
|
21
|
+
[key: number]: CommandDefinition;
|
|
22
|
+
}
|
|
23
|
+
export declare abstract class CommandParser {
|
|
24
|
+
static INTERFACE: Interface;
|
|
25
|
+
static parseCalldata(calldata: string): UniversalRouterCall;
|
|
26
|
+
}
|
|
27
|
+
export declare class GenericCommandParser {
|
|
28
|
+
private readonly commandDefinition;
|
|
29
|
+
constructor(commandDefinition: CommandsDefinition);
|
|
30
|
+
parse(commands: string, inputs: string[]): UniversalRouterCall;
|
|
31
|
+
private static getCommands;
|
|
32
|
+
}
|
|
33
|
+
export declare function parseV3PathExactIn(path: string): readonly V3PathItem[];
|
|
34
|
+
export declare function parseV3PathExactOut(path: string): readonly V3PathItem[];
|