@centurion_project/universal-router-sdk 5.1.0-ctn.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.
Files changed (121) hide show
  1. package/README.md +332 -0
  2. package/dist/cjs/src/entities/Command.d.ts +12 -0
  3. package/dist/cjs/src/entities/Command.js +9 -0
  4. package/dist/cjs/src/entities/Command.js.map +1 -0
  5. package/dist/cjs/src/entities/actions/across.d.ts +21 -0
  6. package/dist/cjs/src/entities/actions/across.js +7 -0
  7. package/dist/cjs/src/entities/actions/across.js.map +1 -0
  8. package/dist/cjs/src/entities/actions/index.d.ts +3 -0
  9. package/dist/cjs/src/entities/actions/index.js +7 -0
  10. package/dist/cjs/src/entities/actions/index.js.map +1 -0
  11. package/dist/cjs/src/entities/actions/uniswap.d.ts +38 -0
  12. package/dist/cjs/src/entities/actions/uniswap.js +545 -0
  13. package/dist/cjs/src/entities/actions/uniswap.js.map +1 -0
  14. package/dist/cjs/src/entities/actions/unwrapWETH.d.ts +12 -0
  15. package/dist/cjs/src/entities/actions/unwrapWETH.js +33 -0
  16. package/dist/cjs/src/entities/actions/unwrapWETH.js.map +1 -0
  17. package/dist/cjs/src/entities/index.d.ts +2 -0
  18. package/dist/cjs/src/entities/index.js +6 -0
  19. package/dist/cjs/src/entities/index.js.map +1 -0
  20. package/dist/cjs/src/index.d.ts +11 -0
  21. package/dist/cjs/src/index.js +31 -0
  22. package/dist/cjs/src/index.js.map +1 -0
  23. package/dist/cjs/src/swapRouter.d.ts +87 -0
  24. package/dist/cjs/src/swapRouter.js +263 -0
  25. package/dist/cjs/src/swapRouter.js.map +1 -0
  26. package/dist/cjs/src/utils/commandParser.d.ts +34 -0
  27. package/dist/cjs/src/utils/commandParser.js +145 -0
  28. package/dist/cjs/src/utils/commandParser.js.map +1 -0
  29. package/dist/cjs/src/utils/constants.d.ts +39 -0
  30. package/dist/cjs/src/utils/constants.js +549 -0
  31. package/dist/cjs/src/utils/constants.js.map +1 -0
  32. package/dist/cjs/src/utils/eip712.d.ts +17 -0
  33. package/dist/cjs/src/utils/eip712.js +43 -0
  34. package/dist/cjs/src/utils/eip712.js.map +1 -0
  35. package/dist/cjs/src/utils/getCurrencyAddress.d.ts +2 -0
  36. package/dist/cjs/src/utils/getCurrencyAddress.js +9 -0
  37. package/dist/cjs/src/utils/getCurrencyAddress.js.map +1 -0
  38. package/dist/cjs/src/utils/inputTokens.d.ts +23 -0
  39. package/dist/cjs/src/utils/inputTokens.js +58 -0
  40. package/dist/cjs/src/utils/inputTokens.js.map +1 -0
  41. package/dist/cjs/src/utils/numbers.d.ts +7 -0
  42. package/dist/cjs/src/utils/numbers.js +27 -0
  43. package/dist/cjs/src/utils/numbers.js.map +1 -0
  44. package/dist/cjs/src/utils/pathCurrency.d.ts +3 -0
  45. package/dist/cjs/src/utils/pathCurrency.js +27 -0
  46. package/dist/cjs/src/utils/pathCurrency.js.map +1 -0
  47. package/dist/cjs/src/utils/routerCommands.d.ts +77 -0
  48. package/dist/cjs/src/utils/routerCommands.js +334 -0
  49. package/dist/cjs/src/utils/routerCommands.js.map +1 -0
  50. package/dist/cjs/src/utils/routerTradeAdapter.d.ts +73 -0
  51. package/dist/cjs/src/utils/routerTradeAdapter.js +139 -0
  52. package/dist/cjs/src/utils/routerTradeAdapter.js.map +1 -0
  53. package/dist/esm/src/entities/Command.d.ts +12 -0
  54. package/dist/esm/src/entities/Command.js +6 -0
  55. package/dist/esm/src/entities/Command.js.map +1 -0
  56. package/dist/esm/src/entities/actions/across.d.ts +21 -0
  57. package/dist/esm/src/entities/actions/across.js +3 -0
  58. package/dist/esm/src/entities/actions/across.js.map +1 -0
  59. package/dist/esm/src/entities/actions/index.d.ts +3 -0
  60. package/dist/esm/src/entities/actions/index.js +4 -0
  61. package/dist/esm/src/entities/actions/index.js.map +1 -0
  62. package/dist/esm/src/entities/actions/uniswap.d.ts +38 -0
  63. package/dist/esm/src/entities/actions/uniswap.js +541 -0
  64. package/dist/esm/src/entities/actions/uniswap.js.map +1 -0
  65. package/dist/esm/src/entities/actions/unwrapWETH.d.ts +12 -0
  66. package/dist/esm/src/entities/actions/unwrapWETH.js +28 -0
  67. package/dist/esm/src/entities/actions/unwrapWETH.js.map +1 -0
  68. package/dist/esm/src/entities/index.d.ts +2 -0
  69. package/dist/esm/src/entities/index.js +3 -0
  70. package/dist/esm/src/entities/index.js.map +1 -0
  71. package/dist/esm/src/index.d.ts +11 -0
  72. package/dist/esm/src/index.js +8 -0
  73. package/dist/esm/src/index.js.map +1 -0
  74. package/dist/esm/src/swapRouter.d.ts +87 -0
  75. package/dist/esm/src/swapRouter.js +258 -0
  76. package/dist/esm/src/swapRouter.js.map +1 -0
  77. package/dist/esm/src/utils/commandParser.d.ts +34 -0
  78. package/dist/esm/src/utils/commandParser.js +137 -0
  79. package/dist/esm/src/utils/commandParser.js.map +1 -0
  80. package/dist/esm/src/utils/constants.d.ts +39 -0
  81. package/dist/esm/src/utils/constants.js +541 -0
  82. package/dist/esm/src/utils/constants.js.map +1 -0
  83. package/dist/esm/src/utils/eip712.d.ts +17 -0
  84. package/dist/esm/src/utils/eip712.js +38 -0
  85. package/dist/esm/src/utils/eip712.js.map +1 -0
  86. package/dist/esm/src/utils/getCurrencyAddress.d.ts +2 -0
  87. package/dist/esm/src/utils/getCurrencyAddress.js +5 -0
  88. package/dist/esm/src/utils/getCurrencyAddress.js.map +1 -0
  89. package/dist/esm/src/utils/inputTokens.d.ts +23 -0
  90. package/dist/esm/src/utils/inputTokens.js +51 -0
  91. package/dist/esm/src/utils/inputTokens.js.map +1 -0
  92. package/dist/esm/src/utils/numbers.d.ts +7 -0
  93. package/dist/esm/src/utils/numbers.js +19 -0
  94. package/dist/esm/src/utils/numbers.js.map +1 -0
  95. package/dist/esm/src/utils/pathCurrency.d.ts +3 -0
  96. package/dist/esm/src/utils/pathCurrency.js +23 -0
  97. package/dist/esm/src/utils/pathCurrency.js.map +1 -0
  98. package/dist/esm/src/utils/routerCommands.d.ts +77 -0
  99. package/dist/esm/src/utils/routerCommands.js +329 -0
  100. package/dist/esm/src/utils/routerCommands.js.map +1 -0
  101. package/dist/esm/src/utils/routerTradeAdapter.d.ts +73 -0
  102. package/dist/esm/src/utils/routerTradeAdapter.js +134 -0
  103. package/dist/esm/src/utils/routerTradeAdapter.js.map +1 -0
  104. package/dist/types/src/entities/Command.d.ts +12 -0
  105. package/dist/types/src/entities/actions/across.d.ts +21 -0
  106. package/dist/types/src/entities/actions/index.d.ts +3 -0
  107. package/dist/types/src/entities/actions/uniswap.d.ts +38 -0
  108. package/dist/types/src/entities/actions/unwrapWETH.d.ts +12 -0
  109. package/dist/types/src/entities/index.d.ts +2 -0
  110. package/dist/types/src/index.d.ts +11 -0
  111. package/dist/types/src/swapRouter.d.ts +87 -0
  112. package/dist/types/src/utils/commandParser.d.ts +34 -0
  113. package/dist/types/src/utils/constants.d.ts +39 -0
  114. package/dist/types/src/utils/eip712.d.ts +17 -0
  115. package/dist/types/src/utils/getCurrencyAddress.d.ts +2 -0
  116. package/dist/types/src/utils/inputTokens.d.ts +23 -0
  117. package/dist/types/src/utils/numbers.d.ts +7 -0
  118. package/dist/types/src/utils/pathCurrency.d.ts +3 -0
  119. package/dist/types/src/utils/routerCommands.d.ts +77 -0
  120. package/dist/types/src/utils/routerTradeAdapter.d.ts +73 -0
  121. package/package.json +85 -0
@@ -0,0 +1,73 @@
1
+ import { Trade as RouterTrade } from '@centurion_project/router-sdk';
2
+ import { Currency, TradeType } from '@centurion_project/sdk-core';
3
+ export type TokenInRoute = {
4
+ address: string;
5
+ chainId: number;
6
+ symbol: string;
7
+ decimals: string;
8
+ name?: string;
9
+ buyFeeBps?: string;
10
+ sellFeeBps?: string;
11
+ };
12
+ export declare enum PoolType {
13
+ V2Pool = "v2-pool",
14
+ V3Pool = "v3-pool",
15
+ V4Pool = "v4-pool"
16
+ }
17
+ export type V2Reserve = {
18
+ token: TokenInRoute;
19
+ quotient: string;
20
+ };
21
+ export type V2PoolInRoute = {
22
+ type: PoolType.V2Pool;
23
+ address?: string;
24
+ tokenIn: TokenInRoute;
25
+ tokenOut: TokenInRoute;
26
+ reserve0: V2Reserve;
27
+ reserve1: V2Reserve;
28
+ amountIn?: string;
29
+ amountOut?: string;
30
+ };
31
+ export type V3PoolInRoute = {
32
+ type: PoolType.V3Pool;
33
+ address?: string;
34
+ tokenIn: TokenInRoute;
35
+ tokenOut: TokenInRoute;
36
+ sqrtRatioX96: string;
37
+ liquidity: string;
38
+ tickCurrent: string;
39
+ fee: string;
40
+ amountIn?: string;
41
+ amountOut?: string;
42
+ };
43
+ export type V4PoolInRoute = {
44
+ type: PoolType.V4Pool;
45
+ address?: string;
46
+ tokenIn: TokenInRoute;
47
+ tokenOut: TokenInRoute;
48
+ fee: string;
49
+ tickSpacing: string;
50
+ hooks: string;
51
+ liquidity: string;
52
+ sqrtRatioX96: string;
53
+ tickCurrent: string;
54
+ amountIn?: string;
55
+ amountOut?: string;
56
+ };
57
+ export type PartialClassicQuote = {
58
+ tokenIn: string;
59
+ tokenOut: string;
60
+ tradeType: TradeType;
61
+ route: Array<(V4PoolInRoute | V3PoolInRoute | V2PoolInRoute)[]>;
62
+ };
63
+ export declare const isNativeCurrency: (address: string) => boolean;
64
+ export declare class RouterTradeAdapter {
65
+ static fromClassicQuote(quote: PartialClassicQuote): RouterTrade<Currency, Currency, TradeType>;
66
+ private static toCurrency;
67
+ private static toPoolOrPair;
68
+ private static toToken;
69
+ private static toV3Pool;
70
+ private static toV4Pool;
71
+ private static toPair;
72
+ private static isVersionedRoute;
73
+ }
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RouterTradeAdapter = exports.isNativeCurrency = exports.PoolType = void 0;
4
+ const router_sdk_1 = require("@centurion_project/router-sdk");
5
+ const sdk_core_1 = require("@centurion_project/sdk-core");
6
+ const v2_sdk_1 = require("@centurion_project/v2-sdk");
7
+ const v3_sdk_1 = require("@centurion_project/v3-sdk");
8
+ const v4_sdk_1 = require("@uniswap/v4-sdk");
9
+ const ethers_1 = require("ethers");
10
+ const constants_1 = require("./constants");
11
+ var PoolType;
12
+ (function (PoolType) {
13
+ PoolType["V2Pool"] = "v2-pool";
14
+ PoolType["V3Pool"] = "v3-pool";
15
+ PoolType["V4Pool"] = "v4-pool";
16
+ })(PoolType = exports.PoolType || (exports.PoolType = {}));
17
+ const isNativeCurrency = (address) => address.toLowerCase() === constants_1.ETH_ADDRESS.toLowerCase() || address.toLowerCase() === constants_1.E_ETH_ADDRESS.toLowerCase();
18
+ exports.isNativeCurrency = isNativeCurrency;
19
+ // Helper class to convert routing-specific quote entities to RouterTrade entities
20
+ // the returned RouterTrade can then be used to build the UniswapTrade entity in this package
21
+ class RouterTradeAdapter {
22
+ // Generate a RouterTrade using fields from a classic quote response
23
+ static fromClassicQuote(quote) {
24
+ const { route, tokenIn, tokenOut } = quote;
25
+ if (!route)
26
+ throw new Error('Expected route to be present');
27
+ if (!route.length)
28
+ throw new Error('Expected there to be at least one route');
29
+ if (route.some((r) => !r.length))
30
+ throw new Error('Expected all routes to have at least one pool');
31
+ const firstRoute = route[0];
32
+ const tokenInData = firstRoute[0].tokenIn;
33
+ const tokenOutData = firstRoute[firstRoute.length - 1].tokenOut;
34
+ if (!tokenInData || !tokenOutData)
35
+ throw new Error('Expected both tokenIn and tokenOut to be present');
36
+ if (tokenInData.chainId !== tokenOutData.chainId)
37
+ throw new Error('Expected tokenIn and tokenOut to be have same chainId');
38
+ const parsedCurrencyIn = RouterTradeAdapter.toCurrency((0, exports.isNativeCurrency)(tokenIn), tokenInData);
39
+ const parsedCurrencyOut = RouterTradeAdapter.toCurrency((0, exports.isNativeCurrency)(tokenOut), tokenOutData);
40
+ const typedRoutes = route.map((subRoute) => {
41
+ const rawAmountIn = subRoute[0].amountIn;
42
+ const rawAmountOut = subRoute[subRoute.length - 1].amountOut;
43
+ if (!rawAmountIn || !rawAmountOut) {
44
+ throw new Error('Expected both raw amountIn and raw amountOut to be present');
45
+ }
46
+ const inputAmount = sdk_core_1.CurrencyAmount.fromRawAmount(parsedCurrencyIn, rawAmountIn);
47
+ const outputAmount = sdk_core_1.CurrencyAmount.fromRawAmount(parsedCurrencyOut, rawAmountOut);
48
+ const isOnlyV2 = RouterTradeAdapter.isVersionedRoute(PoolType.V2Pool, subRoute);
49
+ const isOnlyV3 = RouterTradeAdapter.isVersionedRoute(PoolType.V3Pool, subRoute);
50
+ const isOnlyV4 = RouterTradeAdapter.isVersionedRoute(PoolType.V4Pool, subRoute);
51
+ return {
52
+ routev4: isOnlyV4
53
+ ? new v4_sdk_1.Route(subRoute.map(RouterTradeAdapter.toV4Pool), parsedCurrencyIn, parsedCurrencyOut)
54
+ : null,
55
+ routev3: isOnlyV3
56
+ ? new v3_sdk_1.Route(subRoute.map(RouterTradeAdapter.toV3Pool), parsedCurrencyIn, parsedCurrencyOut)
57
+ : null,
58
+ routev2: isOnlyV2
59
+ ? new v2_sdk_1.Route(subRoute.map(RouterTradeAdapter.toPair), parsedCurrencyIn, parsedCurrencyOut)
60
+ : null,
61
+ mixedRoute: !isOnlyV4 && !isOnlyV3 && !isOnlyV2
62
+ ? new router_sdk_1.MixedRouteSDK(subRoute.map(RouterTradeAdapter.toPoolOrPair), parsedCurrencyIn, parsedCurrencyOut)
63
+ : null,
64
+ inputAmount,
65
+ outputAmount,
66
+ };
67
+ });
68
+ return new router_sdk_1.Trade({
69
+ v2Routes: typedRoutes
70
+ .filter((route) => route.routev2)
71
+ .map((route) => ({
72
+ routev2: route.routev2,
73
+ inputAmount: route.inputAmount,
74
+ outputAmount: route.outputAmount,
75
+ })),
76
+ v3Routes: typedRoutes
77
+ .filter((route) => route.routev3)
78
+ .map((route) => ({
79
+ routev3: route.routev3,
80
+ inputAmount: route.inputAmount,
81
+ outputAmount: route.outputAmount,
82
+ })),
83
+ v4Routes: typedRoutes
84
+ .filter((route) => route.routev4)
85
+ .map((route) => ({
86
+ routev4: route.routev4,
87
+ inputAmount: route.inputAmount,
88
+ outputAmount: route.outputAmount,
89
+ })),
90
+ mixedRoutes: typedRoutes
91
+ .filter((route) => route.mixedRoute)
92
+ .map((route) => ({
93
+ mixedRoute: route.mixedRoute,
94
+ inputAmount: route.inputAmount,
95
+ outputAmount: route.outputAmount,
96
+ })),
97
+ tradeType: quote.tradeType,
98
+ });
99
+ }
100
+ static toCurrency(isNative, token) {
101
+ if (isNative) {
102
+ return sdk_core_1.Ether.onChain(token.chainId);
103
+ }
104
+ return this.toToken(token);
105
+ }
106
+ static toToken(token) {
107
+ const { chainId, address, decimals, symbol, buyFeeBps, sellFeeBps } = token;
108
+ return new sdk_core_1.Token(chainId, address, parseInt(decimals.toString()), symbol,
109
+ /* name */ undefined, false, buyFeeBps ? ethers_1.BigNumber.from(buyFeeBps) : undefined, sellFeeBps ? ethers_1.BigNumber.from(sellFeeBps) : undefined);
110
+ }
111
+ static toV3Pool({ fee, sqrtRatioX96, liquidity, tickCurrent, tokenIn, tokenOut }) {
112
+ return new v3_sdk_1.Pool(RouterTradeAdapter.toToken(tokenIn), RouterTradeAdapter.toToken(tokenOut), parseInt(fee), sqrtRatioX96, liquidity, parseInt(tickCurrent));
113
+ }
114
+ static toV4Pool(pool) {
115
+ const parsedCurrencyIn = RouterTradeAdapter.toCurrency((0, exports.isNativeCurrency)(pool.tokenIn.address), pool.tokenIn);
116
+ const parsedCurrencyOut = RouterTradeAdapter.toCurrency((0, exports.isNativeCurrency)(pool.tokenOut.address), pool.tokenOut);
117
+ return new v4_sdk_1.Pool(parsedCurrencyIn, parsedCurrencyOut, parseInt(pool.fee), parseInt(pool.tickSpacing), pool.hooks, pool.sqrtRatioX96, pool.liquidity, parseInt(pool.tickCurrent));
118
+ }
119
+ static isVersionedRoute(type, route) {
120
+ return route.every((pool) => pool.type === type);
121
+ }
122
+ }
123
+ exports.RouterTradeAdapter = RouterTradeAdapter;
124
+ RouterTradeAdapter.toPoolOrPair = (pool) => {
125
+ switch (pool.type) {
126
+ case PoolType.V4Pool:
127
+ return RouterTradeAdapter.toV4Pool(pool);
128
+ case PoolType.V3Pool:
129
+ return RouterTradeAdapter.toV3Pool(pool);
130
+ case PoolType.V2Pool:
131
+ return RouterTradeAdapter.toPair(pool);
132
+ default:
133
+ throw new Error('Invalid pool type');
134
+ }
135
+ };
136
+ RouterTradeAdapter.toPair = ({ reserve0, reserve1 }) => {
137
+ return new v2_sdk_1.Pair(sdk_core_1.CurrencyAmount.fromRawAmount(RouterTradeAdapter.toToken(reserve0.token), reserve0.quotient), sdk_core_1.CurrencyAmount.fromRawAmount(RouterTradeAdapter.toToken(reserve1.token), reserve1.quotient));
138
+ };
139
+ //# sourceMappingURL=routerTradeAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routerTradeAdapter.js","sourceRoot":"","sources":["../../../../src/utils/routerTradeAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { RoutePlanner } from '../utils/routerCommands';
2
+ export type TradeConfig = {
3
+ allowRevert: boolean;
4
+ };
5
+ export declare enum RouterActionType {
6
+ UniswapTrade = "UniswapTrade",
7
+ UnwrapWETH = "UnwrapWETH"
8
+ }
9
+ export interface Command {
10
+ tradeType: RouterActionType;
11
+ encode(planner: RoutePlanner, config: TradeConfig): void;
12
+ }
@@ -0,0 +1,6 @@
1
+ export var RouterActionType;
2
+ (function (RouterActionType) {
3
+ RouterActionType["UniswapTrade"] = "UniswapTrade";
4
+ RouterActionType["UnwrapWETH"] = "UnwrapWETH";
5
+ })(RouterActionType || (RouterActionType = {}));
6
+ //# sourceMappingURL=Command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Command.js","sourceRoot":"","sources":["../../../../src/entities/Command.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iDAA6B,CAAA;IAC7B,6CAAyB,CAAA;AAC3B,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B"}
@@ -0,0 +1,21 @@
1
+ import { BigNumberish } from 'ethers';
2
+ /**
3
+ * Parameters for Across V4 Deposit V3 command
4
+ * Used for cross-chain bridging via Across Protocol V3 SpokePool
5
+ */
6
+ export type AcrossV4DepositV3Params = {
7
+ depositor: string;
8
+ recipient: string;
9
+ inputToken: string;
10
+ outputToken: string;
11
+ inputAmount: BigNumberish;
12
+ outputAmount: BigNumberish;
13
+ destinationChainId: number;
14
+ exclusiveRelayer: string;
15
+ quoteTimestamp: number;
16
+ fillDeadline: number;
17
+ exclusivityDeadline: number;
18
+ message: string;
19
+ useNative: boolean;
20
+ };
21
+ export { CONTRACT_BALANCE } from '../../utils/constants';
@@ -0,0 +1,3 @@
1
+ // Export CONTRACT_BALANCE constant for convenience
2
+ export { CONTRACT_BALANCE } from '../../utils/constants';
3
+ //# sourceMappingURL=across.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"across.js","sourceRoot":"","sources":["../../../../../src/entities/actions/across.ts"],"names":[],"mappings":"AAsBA,mDAAmD;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './uniswap';
2
+ export * from './unwrapWETH';
3
+ export * from './across';
@@ -0,0 +1,4 @@
1
+ export * from './uniswap';
2
+ export * from './unwrapWETH';
3
+ export * from './across';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA"}
@@ -0,0 +1,38 @@
1
+ import { RoutePlanner } from '../../utils/routerCommands';
2
+ import { Trade as RouterTrade, SwapOptions as RouterSwapOptions } from '@centurion_project/router-sdk';
3
+ import { Permit2Permit } from '../../utils/inputTokens';
4
+ import { Currency, TradeType } from '@centurion_project/sdk-core';
5
+ import { Command, RouterActionType, TradeConfig } from '../Command';
6
+ import { UniversalRouterVersion } from '../../utils/constants';
7
+ import { BigNumberish } from 'ethers';
8
+ export type FlatFeeOptions = {
9
+ amount: BigNumberish;
10
+ recipient: string;
11
+ };
12
+ export declare enum TokenTransferMode {
13
+ Permit2 = "Permit2",
14
+ ApproveProxy = "ApproveProxy"
15
+ }
16
+ export type SwapOptions = Omit<RouterSwapOptions, 'inputTokenPermit'> & {
17
+ useRouterBalance?: boolean;
18
+ inputTokenPermit?: Permit2Permit;
19
+ flatFee?: FlatFeeOptions;
20
+ safeMode?: boolean;
21
+ urVersion?: UniversalRouterVersion;
22
+ tokenTransferMode?: TokenTransferMode;
23
+ chainId?: number;
24
+ };
25
+ export declare class UniswapTrade implements Command {
26
+ trade: RouterTrade<Currency, Currency, TradeType>;
27
+ options: SwapOptions;
28
+ readonly tradeType: RouterActionType;
29
+ readonly payerIsUser: boolean;
30
+ constructor(trade: RouterTrade<Currency, Currency, TradeType>, options: SwapOptions);
31
+ get isAllV4(): boolean;
32
+ get inputRequiresWrap(): boolean;
33
+ get inputRequiresUnwrap(): boolean;
34
+ get outputRequiresWrap(): boolean;
35
+ get outputRequiresUnwrap(): boolean;
36
+ get outputRequiresTransition(): boolean;
37
+ encode(planner: RoutePlanner, _config: TradeConfig): void;
38
+ }