@centurion_project/universal-router-sdk 5.1.1 → 5.9.1

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 (92) hide show
  1. package/README.md +63 -64
  2. package/dist/cjs/src/entities/actions/uniswap.d.ts +9 -0
  3. package/dist/cjs/src/entities/actions/uniswap.js +45 -38
  4. package/dist/cjs/src/entities/actions/uniswap.js.map +1 -1
  5. package/dist/cjs/src/index.d.ts +3 -0
  6. package/dist/cjs/src/index.js +6 -1
  7. package/dist/cjs/src/index.js.map +1 -1
  8. package/dist/cjs/src/swapRouter.d.ts +17 -1
  9. package/dist/cjs/src/swapRouter.js +112 -12
  10. package/dist/cjs/src/swapRouter.js.map +1 -1
  11. package/dist/cjs/src/types/encodeSwaps.d.ts +157 -0
  12. package/dist/cjs/src/types/encodeSwaps.js +3 -0
  13. package/dist/cjs/src/types/encodeSwaps.js.map +1 -0
  14. package/dist/cjs/src/utils/commandParser.d.ts +4 -2
  15. package/dist/cjs/src/utils/commandParser.js +13 -5
  16. package/dist/cjs/src/utils/commandParser.js.map +1 -1
  17. package/dist/cjs/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
  18. package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js +47 -0
  19. package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js.map +1 -0
  20. package/dist/cjs/src/utils/constants.d.ts +2 -1
  21. package/dist/cjs/src/utils/constants.js +100 -7
  22. package/dist/cjs/src/utils/constants.js.map +1 -1
  23. package/dist/cjs/src/utils/encodeSwapStep.d.ts +4 -0
  24. package/dist/cjs/src/utils/encodeSwapStep.js +62 -0
  25. package/dist/cjs/src/utils/encodeSwapStep.js.map +1 -0
  26. package/dist/cjs/src/utils/encodeV4Action.d.ts +7 -0
  27. package/dist/cjs/src/utils/encodeV4Action.js +84 -0
  28. package/dist/cjs/src/utils/encodeV4Action.js.map +1 -0
  29. package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.d.ts +2 -0
  30. package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.js +18 -0
  31. package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.js.map +1 -0
  32. package/dist/cjs/src/utils/routerCommands.js +6 -6
  33. package/dist/cjs/src/utils/routerCommands.js.map +1 -1
  34. package/dist/cjs/src/utils/toV4URVersion.d.ts +3 -0
  35. package/dist/cjs/src/utils/toV4URVersion.js +17 -0
  36. package/dist/cjs/src/utils/toV4URVersion.js.map +1 -0
  37. package/dist/cjs/src/utils/validateEncodeSwaps.d.ts +2 -0
  38. package/dist/cjs/src/utils/validateEncodeSwaps.js +142 -0
  39. package/dist/cjs/src/utils/validateEncodeSwaps.js.map +1 -0
  40. package/dist/esm/src/entities/actions/uniswap.d.ts +9 -0
  41. package/dist/esm/src/entities/actions/uniswap.js +47 -40
  42. package/dist/esm/src/entities/actions/uniswap.js.map +1 -1
  43. package/dist/esm/src/index.d.ts +3 -0
  44. package/dist/esm/src/index.js +3 -0
  45. package/dist/esm/src/index.js.map +1 -1
  46. package/dist/esm/src/swapRouter.d.ts +17 -1
  47. package/dist/esm/src/swapRouter.js +114 -14
  48. package/dist/esm/src/swapRouter.js.map +1 -1
  49. package/dist/esm/src/types/encodeSwaps.d.ts +157 -0
  50. package/dist/esm/src/types/encodeSwaps.js +2 -0
  51. package/dist/esm/src/types/encodeSwaps.js.map +1 -0
  52. package/dist/esm/src/utils/commandParser.d.ts +4 -2
  53. package/dist/esm/src/utils/commandParser.js +14 -6
  54. package/dist/esm/src/utils/commandParser.js.map +1 -1
  55. package/dist/esm/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
  56. package/dist/esm/src/utils/computeEncodeSwapsAmounts.js +43 -0
  57. package/dist/esm/src/utils/computeEncodeSwapsAmounts.js.map +1 -0
  58. package/dist/esm/src/utils/constants.d.ts +2 -1
  59. package/dist/esm/src/utils/constants.js +100 -7
  60. package/dist/esm/src/utils/constants.js.map +1 -1
  61. package/dist/esm/src/utils/encodeSwapStep.d.ts +4 -0
  62. package/dist/esm/src/utils/encodeSwapStep.js +58 -0
  63. package/dist/esm/src/utils/encodeSwapStep.js.map +1 -0
  64. package/dist/esm/src/utils/encodeV4Action.d.ts +7 -0
  65. package/dist/esm/src/utils/encodeV4Action.js +80 -0
  66. package/dist/esm/src/utils/encodeV4Action.js.map +1 -0
  67. package/dist/esm/src/utils/normalizeEncodeSwapsSpec.d.ts +2 -0
  68. package/dist/esm/src/utils/normalizeEncodeSwapsSpec.js +14 -0
  69. package/dist/esm/src/utils/normalizeEncodeSwapsSpec.js.map +1 -0
  70. package/dist/esm/src/utils/routerCommands.js +6 -6
  71. package/dist/esm/src/utils/routerCommands.js.map +1 -1
  72. package/dist/esm/src/utils/toV4URVersion.d.ts +3 -0
  73. package/dist/esm/src/utils/toV4URVersion.js +13 -0
  74. package/dist/esm/src/utils/toV4URVersion.js.map +1 -0
  75. package/dist/esm/src/utils/validateEncodeSwaps.d.ts +2 -0
  76. package/dist/esm/src/utils/validateEncodeSwaps.js +137 -0
  77. package/dist/esm/src/utils/validateEncodeSwaps.js.map +1 -0
  78. package/dist/types/src/entities/actions/uniswap.d.ts +9 -0
  79. package/dist/types/src/index.d.ts +3 -0
  80. package/dist/types/src/swapRouter.d.ts +17 -1
  81. package/dist/types/src/types/encodeSwaps.d.ts +157 -0
  82. package/dist/types/src/utils/commandParser.d.ts +4 -2
  83. package/dist/types/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
  84. package/dist/types/src/utils/constants.d.ts +2 -1
  85. package/dist/types/src/utils/encodeSwapStep.d.ts +4 -0
  86. package/dist/types/src/utils/encodeV4Action.d.ts +7 -0
  87. package/dist/types/src/utils/normalizeEncodeSwapsSpec.d.ts +2 -0
  88. package/dist/types/src/utils/toV4URVersion.d.ts +3 -0
  89. package/dist/types/src/utils/validateEncodeSwaps.d.ts +2 -0
  90. package/package.json +12 -10
  91. package/dist/cjs/src/abis/UniversalRouter.json +0 -747
  92. package/dist/esm/src/abis/UniversalRouter.json +0 -747
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateEncodeSwaps = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ethers_1 = require("ethers");
6
+ const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
7
+ const sdk_core_1 = require("@centurion_project/sdk-core");
8
+ const uniswap_1 = require("../entities/actions/uniswap");
9
+ const constants_1 = require("./constants");
10
+ // V3 path: 20-byte address + N × (3-byte fee + 20-byte address); minimum is 43 bytes (single hop, N=1)
11
+ // Returns N or undefined if malformed
12
+ function getV3HopCount(path) {
13
+ if (!path.startsWith('0x'))
14
+ return undefined;
15
+ const byteLength = (path.length - 2) / 2;
16
+ if (byteLength < 43)
17
+ return undefined;
18
+ const variableSegmentLength = byteLength - 20;
19
+ if (variableSegmentLength < 23 || variableSegmentLength % 23 !== 0)
20
+ return undefined;
21
+ return variableSegmentLength / 23;
22
+ }
23
+ function hasV4MinHopPriceX36(action) {
24
+ switch (action.action) {
25
+ case 'SWAP_EXACT_IN':
26
+ case 'SWAP_EXACT_OUT':
27
+ case 'SWAP_EXACT_IN_SINGLE':
28
+ case 'SWAP_EXACT_OUT_SINGLE':
29
+ return action.minHopPriceX36 !== undefined;
30
+ default:
31
+ return false;
32
+ }
33
+ }
34
+ function validateV4HopCounts(actions) {
35
+ for (const action of actions) {
36
+ switch (action.action) {
37
+ case 'SWAP_EXACT_IN':
38
+ case 'SWAP_EXACT_OUT':
39
+ (0, tiny_invariant_1.default)(!action.minHopPriceX36 || action.minHopPriceX36.length === action.path.length, 'V4_MIN_HOP_PRICE_X36_LENGTH_MISMATCH');
40
+ break;
41
+ default:
42
+ break;
43
+ }
44
+ }
45
+ }
46
+ function assertRouterRecipient(recipient) {
47
+ (0, tiny_invariant_1.default)(recipient === constants_1.ROUTER_AS_RECIPIENT, 'STEP_RECIPIENT_MUST_BE_ROUTER');
48
+ }
49
+ function assertRouterActionRecipient(recipient) {
50
+ (0, tiny_invariant_1.default)(recipient === constants_1.ROUTER_AS_RECIPIENT, 'V4_ACTION_RECIPIENT_MUST_BE_ROUTER');
51
+ }
52
+ // V4 actions that take a recipient must use router custody so the SDK's settlement sweeps see the funds
53
+ function validateV4Recipients(actions) {
54
+ for (const action of actions) {
55
+ switch (action.action) {
56
+ case 'TAKE':
57
+ case 'TAKE_PORTION':
58
+ assertRouterActionRecipient(action.recipient);
59
+ break;
60
+ default:
61
+ break;
62
+ }
63
+ }
64
+ }
65
+ function validateEncodeSwaps(spec, swapSteps) {
66
+ var _a, _b, _c, _d;
67
+ (0, tiny_invariant_1.default)(swapSteps.length > 0, 'EMPTY_SWAP_STEPS');
68
+ const amountCurrency = spec.routing.amount.currency.wrapped;
69
+ const quoteCurrency = spec.routing.quote.currency.wrapped;
70
+ const inputCurrency = spec.routing.inputToken.wrapped;
71
+ const outputCurrency = spec.routing.outputToken.wrapped;
72
+ (0, tiny_invariant_1.default)(!spec.slippageTolerance.lessThan(0), 'SLIPPAGE_TOLERANCE');
73
+ (0, tiny_invariant_1.default)(spec.recipient !== constants_1.ZERO_ADDRESS, 'RECIPIENT_CANNOT_BE_ZERO');
74
+ (0, tiny_invariant_1.default)(spec.recipient !== constants_1.ROUTER_AS_RECIPIENT, 'RECIPIENT_CANNOT_BE_ROUTER');
75
+ // routing.amount is on the exact side of the trade; routing.quote is on the slippage side
76
+ if (spec.tradeType === sdk_core_1.TradeType.EXACT_INPUT) {
77
+ (0, tiny_invariant_1.default)(amountCurrency.equals(inputCurrency), 'INVALID_ROUTING_AMOUNT_CURRENCY');
78
+ (0, tiny_invariant_1.default)(quoteCurrency.equals(outputCurrency), 'INVALID_ROUTING_QUOTE_CURRENCY');
79
+ }
80
+ else {
81
+ (0, tiny_invariant_1.default)(amountCurrency.equals(outputCurrency), 'INVALID_ROUTING_AMOUNT_CURRENCY');
82
+ (0, tiny_invariant_1.default)(quoteCurrency.equals(inputCurrency), 'INVALID_ROUTING_QUOTE_CURRENCY');
83
+ }
84
+ // ApproveProxy ingress lives upstream in the proxy contract: needs chain id, ERC20 input, no permit2, explicit recipient
85
+ if (spec.tokenTransferMode === uniswap_1.TokenTransferMode.ApproveProxy) {
86
+ (0, tiny_invariant_1.default)(!!spec.chainId, 'PROXY_MISSING_CHAIN_ID');
87
+ (0, tiny_invariant_1.default)(!spec.routing.inputToken.isNative, 'PROXY_NATIVE_INPUT');
88
+ (0, tiny_invariant_1.default)(!spec.permit, 'PROXY_PERMIT_CONFLICT');
89
+ (0, tiny_invariant_1.default)(spec.recipient !== constants_1.SENDER_AS_RECIPIENT, 'PROXY_EXPLICIT_RECIPIENT_REQUIRED');
90
+ }
91
+ // permit2 is ERC20-only; native input pays via msg.value
92
+ (0, tiny_invariant_1.default)(!(spec.routing.inputToken.isNative && spec.permit), 'NATIVE_INPUT_PERMIT');
93
+ // native-ERC20 gas-token input (e.g. Arc USDC): funded via msg.value, never via Permit2
94
+ if (spec.nativeErc20Input) {
95
+ (0, tiny_invariant_1.default)(!spec.routing.inputToken.isNative, 'NATIVE_ERC20_INPUT_NATIVE_TOKEN');
96
+ (0, tiny_invariant_1.default)(!spec.permit, 'NATIVE_ERC20_INPUT_PERMIT_CONFLICT');
97
+ (0, tiny_invariant_1.default)(spec.tokenTransferMode !== uniswap_1.TokenTransferMode.ApproveProxy, 'NATIVE_ERC20_INPUT_PROXY_CONFLICT');
98
+ (0, tiny_invariant_1.default)(spec.routing.inputToken.decimals <= 18, 'NATIVE_ERC20_INPUT_DECIMALS');
99
+ }
100
+ // portion fees pair with exact-input (% of variable output); flat fees pair with exact-output (fixed deduction from the target)
101
+ (0, tiny_invariant_1.default)(!(((_a = spec.fee) === null || _a === void 0 ? void 0 : _a.kind) === 'portion' && spec.tradeType !== sdk_core_1.TradeType.EXACT_INPUT), 'INVALID_PORTION_FEE_TRADE_TYPE');
102
+ (0, tiny_invariant_1.default)(!(((_b = spec.fee) === null || _b === void 0 ? void 0 : _b.kind) === 'flat' && spec.tradeType !== sdk_core_1.TradeType.EXACT_OUTPUT), 'INVALID_FLAT_FEE_TRADE_TYPE');
103
+ (0, tiny_invariant_1.default)(!(((_c = spec.fee) === null || _c === void 0 ? void 0 : _c.kind) === 'flat' &&
104
+ ethers_1.BigNumber.from(spec.fee.amount).gt(ethers_1.BigNumber.from(spec.routing.amount.quotient.toString()))), 'FLAT_FEE_GT_AMOUNT');
105
+ // v2.0 PAY_PORTION takes whole bps; fractional bps need >=v2.1.1's PAY_PORTION_FULL_PRECISION
106
+ (0, tiny_invariant_1.default)(!(((_d = spec.fee) === null || _d === void 0 ? void 0 : _d.kind) === 'portion' &&
107
+ spec.urVersion === constants_1.UniversalRouterVersion.V2_0 &&
108
+ !spec.fee.fee.multiply(10000).remainder.equalTo(0)), 'FRACTIONAL_BPS_PORTION_FEE_UNSUPPORTED_ON_V2_0');
109
+ // per-step: capability-gate by UR version, recipients must be router custody, per-hop arrays must match hop counts
110
+ for (const step of swapSteps) {
111
+ if (spec.urVersion === constants_1.UniversalRouterVersion.V2_0) {
112
+ (0, tiny_invariant_1.default)(!('minHopPriceX36' in step) || step.minHopPriceX36 === undefined, 'MIN_HOP_PRICE_X36_UNSUPPORTED_ON_V2_0');
113
+ (0, tiny_invariant_1.default)(!(step.type === 'V4_SWAP' && step.v4Actions.some(hasV4MinHopPriceX36)), 'MIN_HOP_PRICE_X36_UNSUPPORTED_ON_V2_0');
114
+ }
115
+ switch (step.type) {
116
+ case 'V2_SWAP_EXACT_IN':
117
+ case 'V2_SWAP_EXACT_OUT':
118
+ assertRouterRecipient(step.recipient);
119
+ (0, tiny_invariant_1.default)(!step.minHopPriceX36 || step.minHopPriceX36.length === step.path.length - 1, 'V2_MIN_HOP_PRICE_X36_LENGTH_MISMATCH');
120
+ break;
121
+ case 'V3_SWAP_EXACT_IN':
122
+ case 'V3_SWAP_EXACT_OUT': {
123
+ assertRouterRecipient(step.recipient);
124
+ const hopCount = getV3HopCount(step.path);
125
+ (0, tiny_invariant_1.default)(hopCount === undefined || !step.minHopPriceX36 || step.minHopPriceX36.length === hopCount, 'V3_MIN_HOP_PRICE_X36_LENGTH_MISMATCH');
126
+ break;
127
+ }
128
+ case 'WRAP_ETH':
129
+ case 'UNWRAP_WETH':
130
+ assertRouterRecipient(step.recipient);
131
+ break;
132
+ case 'V4_SWAP':
133
+ validateV4HopCounts(step.v4Actions);
134
+ validateV4Recipients(step.v4Actions);
135
+ break;
136
+ default:
137
+ break;
138
+ }
139
+ }
140
+ }
141
+ exports.validateEncodeSwaps = validateEncodeSwaps;
142
+ //# sourceMappingURL=validateEncodeSwaps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateEncodeSwaps.js","sourceRoot":"","sources":["../../../../src/utils/validateEncodeSwaps.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,15 @@ export declare enum TokenTransferMode {
15
15
  }
16
16
  export type SwapOptions = Omit<RouterSwapOptions, 'inputTokenPermit'> & {
17
17
  useRouterBalance?: boolean;
18
+ /**
19
+ * The input Token is the chain's native gas token exposed via an ERC20 predeploy whose balance
20
+ * mirrors the native balance (e.g. USDC on Arc). The swap is funded by attaching
21
+ * msg.value = maximumAmountIn * 10^(18 - token.decimals) instead of pulling via Permit2:
22
+ * the router self-funds (payerIsUser = false) and unused input is swept back to the recipient
23
+ * on exact-output / partial-fill-risk trades. No ERC20 approval or permit is ever needed.
24
+ * Incompatible with native input, inputTokenPermit, and TokenTransferMode.ApproveProxy.
25
+ */
26
+ nativeErc20Input?: boolean;
18
27
  inputTokenPermit?: Permit2Permit;
19
28
  flatFee?: FlatFeeOptions;
20
29
  safeMode?: boolean;
@@ -1,12 +1,13 @@
1
1
  import { CommandType } from '../../utils/routerCommands';
2
2
  import { Trade as V2Trade, Pair } from '@centurion_project/v2-sdk';
3
3
  import { Trade as V3Trade, Pool as V3Pool, encodeRouteToPath } from '@centurion_project/v3-sdk';
4
- import { Route as V4Route, Trade as V4Trade, Pool as V4Pool, V4Planner, encodeRouteToPath as encodeV4RouteToPath, Actions, URVersion, } from '@centurion_project/v4-sdk';
4
+ import { Route as V4Route, Trade as V4Trade, Pool as V4Pool, V4Planner, encodeRouteToPath as encodeV4RouteToPath, Actions, } from '@centurion_project/v4-sdk';
5
5
  import { MixedRouteTrade, Protocol, MixedRouteSDK, MixedRoute, getOutputOfPools, encodeMixedRouteToPath, partitionMixedRouteByProtocol, } from '@centurion_project/router-sdk';
6
6
  import { getPathCurrency } from '../../utils/pathCurrency';
7
+ import { toV4URVersion } from '../../utils/toV4URVersion';
7
8
  import { TradeType, Percent } from '@centurion_project/sdk-core';
8
9
  import { RouterActionType } from '../Command';
9
- import { SENDER_AS_RECIPIENT, ROUTER_AS_RECIPIENT, CONTRACT_BALANCE, ETH_ADDRESS, UniversalRouterVersion, isAtLeastV2_1_1, } from '../../utils/constants';
10
+ import { SENDER_AS_RECIPIENT, ROUTER_AS_RECIPIENT, CONTRACT_BALANCE, ETH_ADDRESS, isAtLeastV2_1_1, } from '../../utils/constants';
10
11
  import { getCurrencyAddress } from '../../utils/getCurrencyAddress';
11
12
  import { encodeFeeBips, encodeFee1e18 } from '../../utils/numbers';
12
13
  import { BigNumber } from 'ethers';
@@ -19,19 +20,6 @@ export var TokenTransferMode;
19
20
  TokenTransferMode["Permit2"] = "Permit2";
20
21
  TokenTransferMode["ApproveProxy"] = "ApproveProxy";
21
22
  })(TokenTransferMode || (TokenTransferMode = {}));
22
- /** Map from UniversalRouterVersion to v4-sdk's URVersion for v4 planner calls */
23
- const UR_VERSION_MAP = {
24
- [UniversalRouterVersion.V2_0]: URVersion.V2_0,
25
- [UniversalRouterVersion.V2_1_1]: URVersion.V2_1_1,
26
- };
27
- function toURVersion(version) {
28
- if (version === undefined)
29
- return URVersion.V2_0;
30
- const mapped = UR_VERSION_MAP[version];
31
- if (!mapped)
32
- throw new Error(`No v4-sdk URVersion mapping for UniversalRouterVersion: ${version}`);
33
- return mapped;
34
- }
35
23
  const REFUND_ETH_PRICE_IMPACT_THRESHOLD = new Percent(50, 100);
36
24
  // Wrapper for uniswap router-sdk trade entity to encode swaps for Universal Router
37
25
  // also translates trade objects from previous (v2, v3) SDKs
@@ -42,13 +30,30 @@ export class UniswapTrade {
42
30
  this.tradeType = RouterActionType.UniswapTrade;
43
31
  if (!!options.fee && !!options.flatFee)
44
32
  throw new Error('Only one fee option permitted');
33
+ if (options.nativeErc20Input) {
34
+ // input token is the chain's native gas token exposed via an ERC20 predeploy (e.g. Arc USDC);
35
+ // the router is funded by msg.value instead of Permit2, so it pays pools from its own balance
36
+ if (this.trade.inputAmount.currency.isNative)
37
+ throw new Error('nativeErc20Input requires an ERC20 input token');
38
+ if (options.tokenTransferMode === TokenTransferMode.ApproveProxy) {
39
+ throw new Error('nativeErc20Input is not supported with ApproveProxy');
40
+ }
41
+ if (options.inputTokenPermit)
42
+ throw new Error('nativeErc20Input does not use Permit2; remove inputTokenPermit');
43
+ if (this.inputRequiresUnwrap) {
44
+ throw new Error('nativeErc20Input requires routes quoted against the ERC20 input (native pathInput unsupported)');
45
+ }
46
+ }
45
47
  if (options.tokenTransferMode === TokenTransferMode.ApproveProxy) {
46
48
  if (!options.recipient || options.recipient === SENDER_AS_RECIPIENT) {
47
49
  throw new Error('Explicit recipient address required when using SwapProxy (SENDER_AS_RECIPIENT resolves to proxy)');
48
50
  }
49
51
  this.payerIsUser = false;
50
52
  }
51
- else if (this.inputRequiresWrap || this.inputRequiresUnwrap || this.options.useRouterBalance) {
53
+ else if (this.inputRequiresWrap ||
54
+ this.inputRequiresUnwrap ||
55
+ this.options.useRouterBalance ||
56
+ this.options.nativeErc20Input) {
52
57
  this.payerIsUser = false;
53
58
  }
54
59
  else {
@@ -275,8 +280,10 @@ export class UniswapTrade {
275
280
  0,
276
281
  ]);
277
282
  }
278
- else if (this.trade.inputAmount.currency.isNative) {
279
- // must refund extra native currency sent along for native v4 trades (no input transition)
283
+ else if (this.options.nativeErc20Input || this.trade.inputAmount.currency.isNative) {
284
+ // must refund extra native currency sent along (nativeErc20Input or native v4 trades).
285
+ // For nativeErc20Input the leftover lives in the router's native balance (18 decimals), so
286
+ // sweep it as native: an ERC20 sweep would floor to the token's decimals and strand dust.
280
287
  planner.addCommand(CommandType.SWEEP, [ETH_ADDRESS, this.options.recipient, 0]);
281
288
  }
282
289
  }
@@ -285,9 +292,9 @@ export class UniswapTrade {
285
292
  }
286
293
  }
287
294
  // encode a uniswap v2 swap
288
- function addV2Swap(planner, { route, inputAmount, outputAmount, maxHopSlippage }, tradeType, options, payerIsUser, routerMustCustody) {
289
- if ((maxHopSlippage === null || maxHopSlippage === void 0 ? void 0 : maxHopSlippage.length) && maxHopSlippage.length !== route.pools.length) {
290
- throw new Error(`maxHopSlippage length (${maxHopSlippage.length}) must equal route.pools.length (${route.pools.length})`);
295
+ function addV2Swap(planner, { route, inputAmount, outputAmount, minHopPriceX36 }, tradeType, options, payerIsUser, routerMustCustody) {
296
+ if ((minHopPriceX36 === null || minHopPriceX36 === void 0 ? void 0 : minHopPriceX36.length) && minHopPriceX36.length !== route.pools.length) {
297
+ throw new Error(`minHopPriceX36 length (${minHopPriceX36.length}) must equal route.pools.length (${route.pools.length})`);
291
298
  }
292
299
  const trade = new V2Trade(route, tradeType == TradeType.EXACT_INPUT ? inputAmount : outputAmount, tradeType);
293
300
  const useV2_1_1 = isAtLeastV2_1_1(options.urVersion);
@@ -302,7 +309,7 @@ function addV2Swap(planner, { route, inputAmount, outputAmount, maxHopSlippage }
302
309
  payerIsUser,
303
310
  ];
304
311
  if (useV2_1_1)
305
- params.push(maxHopSlippage !== null && maxHopSlippage !== void 0 ? maxHopSlippage : []);
312
+ params.push(minHopPriceX36 !== null && minHopPriceX36 !== void 0 ? minHopPriceX36 : []);
306
313
  planner.addCommand(CommandType.V2_SWAP_EXACT_IN, params, false, options.urVersion);
307
314
  }
308
315
  else if (tradeType == TradeType.EXACT_OUTPUT) {
@@ -314,14 +321,14 @@ function addV2Swap(planner, { route, inputAmount, outputAmount, maxHopSlippage }
314
321
  payerIsUser,
315
322
  ];
316
323
  if (useV2_1_1)
317
- params.push(maxHopSlippage !== null && maxHopSlippage !== void 0 ? maxHopSlippage : []);
324
+ params.push(minHopPriceX36 !== null && minHopPriceX36 !== void 0 ? minHopPriceX36 : []);
318
325
  planner.addCommand(CommandType.V2_SWAP_EXACT_OUT, params, false, options.urVersion);
319
326
  }
320
327
  }
321
328
  // encode a uniswap v3 swap
322
- function addV3Swap(planner, { route, inputAmount, outputAmount, maxHopSlippage }, tradeType, options, payerIsUser, routerMustCustody) {
323
- if ((maxHopSlippage === null || maxHopSlippage === void 0 ? void 0 : maxHopSlippage.length) && maxHopSlippage.length !== route.pools.length) {
324
- throw new Error(`maxHopSlippage length (${maxHopSlippage.length}) must equal route.pools.length (${route.pools.length})`);
329
+ function addV3Swap(planner, { route, inputAmount, outputAmount, minHopPriceX36 }, tradeType, options, payerIsUser, routerMustCustody) {
330
+ if ((minHopPriceX36 === null || minHopPriceX36 === void 0 ? void 0 : minHopPriceX36.length) && minHopPriceX36.length !== route.pools.length) {
331
+ throw new Error(`minHopPriceX36 length (${minHopPriceX36.length}) must equal route.pools.length (${route.pools.length})`);
325
332
  }
326
333
  const trade = V3Trade.createUncheckedTrade({
327
334
  route: route,
@@ -340,7 +347,7 @@ function addV3Swap(planner, { route, inputAmount, outputAmount, maxHopSlippage }
340
347
  payerIsUser,
341
348
  ];
342
349
  if (useV2_1_1)
343
- params.push(maxHopSlippage !== null && maxHopSlippage !== void 0 ? maxHopSlippage : []);
350
+ params.push(minHopPriceX36 !== null && minHopPriceX36 !== void 0 ? minHopPriceX36 : []);
344
351
  planner.addCommand(CommandType.V3_SWAP_EXACT_IN, params, false, options.urVersion);
345
352
  }
346
353
  else if (tradeType == TradeType.EXACT_OUTPUT) {
@@ -352,14 +359,14 @@ function addV3Swap(planner, { route, inputAmount, outputAmount, maxHopSlippage }
352
359
  payerIsUser,
353
360
  ];
354
361
  if (useV2_1_1)
355
- params.push(maxHopSlippage !== null && maxHopSlippage !== void 0 ? maxHopSlippage : []);
362
+ params.push(minHopPriceX36 !== null && minHopPriceX36 !== void 0 ? minHopPriceX36 : []);
356
363
  planner.addCommand(CommandType.V3_SWAP_EXACT_OUT, params, false, options.urVersion);
357
364
  }
358
365
  }
359
- function addV4Swap(planner, { inputAmount, outputAmount, route, maxHopSlippage }, tradeType, options, payerIsUser, routerMustCustody) {
366
+ function addV4Swap(planner, { inputAmount, outputAmount, route, minHopPriceX36 }, tradeType, options, payerIsUser, routerMustCustody) {
360
367
  var _a, _b;
361
- if ((maxHopSlippage === null || maxHopSlippage === void 0 ? void 0 : maxHopSlippage.length) && maxHopSlippage.length !== route.pools.length) {
362
- throw new Error(`maxHopSlippage length (${maxHopSlippage.length}) must equal route.pools.length (${route.pools.length})`);
368
+ if ((minHopPriceX36 === null || minHopPriceX36 === void 0 ? void 0 : minHopPriceX36.length) && minHopPriceX36.length !== route.pools.length) {
369
+ throw new Error(`minHopPriceX36 length (${minHopPriceX36.length}) must equal route.pools.length (${route.pools.length})`);
363
370
  }
364
371
  // create a deep copy of pools since v4Planner encoding tampers with array
365
372
  const pools = route.pools.map((p) => p);
@@ -371,9 +378,9 @@ function addV4Swap(planner, { inputAmount, outputAmount, route, maxHopSlippage }
371
378
  tradeType,
372
379
  });
373
380
  const slippageToleranceOnSwap = routerMustCustody && tradeType == TradeType.EXACT_INPUT ? undefined : options.slippageTolerance;
374
- const perHopSlippage = (_a = maxHopSlippage === null || maxHopSlippage === void 0 ? void 0 : maxHopSlippage.map((s) => BigNumber.from(s))) !== null && _a !== void 0 ? _a : [];
381
+ const perHopSlippage = (_a = minHopPriceX36 === null || minHopPriceX36 === void 0 ? void 0 : minHopPriceX36.map((s) => BigNumber.from(s))) !== null && _a !== void 0 ? _a : [];
375
382
  const v4Planner = new V4Planner();
376
- v4Planner.addTrade(trade, slippageToleranceOnSwap, perHopSlippage, toURVersion(options.urVersion));
383
+ v4Planner.addTrade(trade, slippageToleranceOnSwap, perHopSlippage, toV4URVersion(options.urVersion));
377
384
  v4Planner.addSettle(trade.route.pathInput, payerIsUser);
378
385
  // Handle split route output consistency:
379
386
  // - If output is ETH and some routes output WETH: force all to output WETH, then unwrap
@@ -398,8 +405,8 @@ function addV4Swap(planner, { inputAmount, outputAmount, route, maxHopSlippage }
398
405
  function addMixedSwap(planner, swap, tradeType, options, payerIsUser, routerMustCustody) {
399
406
  var _a, _b, _c, _d;
400
407
  const route = swap.route;
401
- if (((_a = swap.maxHopSlippage) === null || _a === void 0 ? void 0 : _a.length) && swap.maxHopSlippage.length !== route.pools.length) {
402
- throw new Error(`maxHopSlippage length (${swap.maxHopSlippage.length}) must equal route.pools.length (${route.pools.length})`);
408
+ if (((_a = swap.minHopPriceX36) === null || _a === void 0 ? void 0 : _a.length) && swap.minHopPriceX36.length !== route.pools.length) {
409
+ throw new Error(`minHopPriceX36 length (${swap.minHopPriceX36.length}) must equal route.pools.length (${route.pools.length})`);
403
410
  }
404
411
  const inputAmount = swap.inputAmount;
405
412
  const outputAmount = swap.outputAmount;
@@ -430,7 +437,7 @@ function addMixedSwap(planner, swap, tradeType, options, payerIsUser, routerMust
430
437
  ? 0
431
438
  : trade.minimumAmountOut(options.slippageTolerance, outputAmount).quotient.toString();
432
439
  // logic from
433
- // Derived from upstream router-sdk swap path handling.
440
+ // https://github.com/Uniswap/router-sdk/blob/d8eed164e6c79519983844ca8b6a3fc24ebcb8f8/src/swapRouter.ts#L276
434
441
  const sections = partitionMixedRouteByProtocol(route);
435
442
  const isLastSectionInRoute = (i) => {
436
443
  return i === sections.length - 1;
@@ -443,8 +450,8 @@ function addMixedSwap(planner, swap, tradeType, options, payerIsUser, routerMust
443
450
  const routePool = section[0];
444
451
  const outputToken = getOutputOfPools(section, inputToken);
445
452
  const subRoute = new MixedRoute(new MixedRouteSDK([...section], inputToken, outputToken));
446
- // Slice this section's portion of maxHopSlippage from the flat array
447
- const sectionHopSlippage = (_c = swap.maxHopSlippage) === null || _c === void 0 ? void 0 : _c.slice(hopOffset, hopOffset + section.length);
453
+ // Slice this section's portion of minHopPriceX36 from the flat array
454
+ const sectionHopSlippage = (_c = swap.minHopPriceX36) === null || _c === void 0 ? void 0 : _c.slice(hopOffset, hopOffset + section.length);
448
455
  let nextInputToken;
449
456
  let swapRecipient;
450
457
  if (isLastSectionInRoute(i)) {
@@ -466,11 +473,11 @@ function addMixedSwap(planner, swap, tradeType, options, payerIsUser, routerMust
466
473
  {
467
474
  currencyIn: inputToken.isNative ? ETH_ADDRESS : inputToken.address,
468
475
  path: encodeV4RouteToPath(v4SubRoute),
469
- maxHopSlippage: v4SectionSlippage,
476
+ minHopPriceX36: v4SectionSlippage,
470
477
  amountIn: 0,
471
478
  amountOutMinimum: !isLastSectionInRoute(i) ? 0 : amountOut,
472
479
  },
473
- ], toURVersion(options.urVersion));
480
+ ], toV4URVersion(options.urVersion));
474
481
  // Handle split route output consistency for V4 sections in mixed routes
475
482
  let outputTokenForTake = outputToken;
476
483
  if (isLastSectionInRoute(i)) {
@@ -1 +1 @@
1
- {"version":3,"file":"uniswap.js","sourceRoot":"","sources":["../../../../../src/entities/actions/uniswap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EACL,KAAK,IAAI,OAAO,EAChB,KAAK,IAAI,OAAO,EAChB,IAAI,IAAI,MAAM,EACd,SAAS,EACT,iBAAiB,IAAI,mBAAmB,EACxC,OAAO,EACP,SAAS,GACV,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,eAAe,EACf,QAAQ,EAIR,aAAa,EACb,UAAU,EAEV,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAY,SAAS,EAAyB,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACjG,OAAO,EAAW,gBAAgB,EAAe,MAAM,YAAY,CAAA;AACnE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,SAAS,EAAgB,MAAM,QAAQ,CAAA;AAQhD,4EAA4E;AAC5E,oDAAoD;AACpD,8EAA8E;AAC9E,2FAA2F;AAC3F,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,kDAA6B,CAAA;AAC/B,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;AAYD,iFAAiF;AACjF,MAAM,cAAc,GAA8B;IAChD,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI;IAC7C,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM;CAClD,CAAA;AAED,SAAS,WAAW,CAAC,OAAgC;IACnD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC,IAAI,CAAA;IAChD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,OAAO,EAAE,CAAC,CAAA;IAClG,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,iCAAiC,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAS9D,mFAAmF;AACnF,4DAA4D;AAC5D,MAAM,OAAO,YAAY;IAIvB,YAAmB,KAAiD,EAAS,OAAoB;QAA9E,UAAK,GAAL,KAAK,CAA4C;QAAS,YAAO,GAAP,OAAO,CAAa;QAHxF,cAAS,GAAqB,gBAAgB,CAAC,YAAY,CAAA;QAIlE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAExF,IAAI,OAAO,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,YAAY,EAAE;YAChE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,mBAAmB,EAAE;gBACnE,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAA;aACF;YACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;SACzB;aAAM,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;YAC9F,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;SACzB;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;SACxB;IACH,CAAC;IAED,IAAI,OAAO;QACT,IAAI,MAAM,GAAG,IAAI,CAAA;QACjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACnC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,CAAA;SACtD;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,kDAAkD;IAClD,kEAAkE;IAClE,uCAAuC;IACvC,mFAAmF;IACnF,gGAAgG;IAChG,mGAAmG;IACnG,qCAAqC;IACrC,IAAI,iBAAiB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEhC,IAAI,SAAS,YAAY,MAAM,EAAE;YAC/B,mIAAmI;YACnI,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ;gBACxC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgD,CAAC,SAAS,CAAC,QAAQ,CAC1F,CAAA;SACF;QACD,+EAA+E;QAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAA;IACjD,CAAC;IAED,IAAI,mBAAmB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEhC,IAAI,SAAS,YAAY,MAAM,EAAE;YAC/B,2HAA2H;YAC3H,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ;gBACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgD,CAAC,SAAS,CAAC,QAAQ,CACzF,CAAA;SACF;QACD,+DAA+D;QAC/D,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,kBAAkB;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAE5D,sBAAsB;QACtB,IAAI,QAAQ,YAAY,MAAM,EAAE;YAC9B,uFAAuF;YACvF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC9C,IAAK,SAAoD,CAAC,UAAU,CAAC,QAAQ,EAAE;oBAC7E,uDAAuD;oBACvD,OAAO,IAAI,CAAA;iBACZ;qBAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9F,IAAI,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBAC5D,iEAAiE;oBACjE,IACE,UAAU,YAAY,MAAM;wBAC5B,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACpG;wBACA,OAAO,IAAI,CAAA;qBACZ;yBAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;wBACvG,2BAA2B;wBAC3B,OAAO,IAAI,CAAA;qBACZ;iBACF;aACF;SACF;QACD,0BAA0B;QAC1B,gFAAgF;QAChF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,oBAAoB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAE5D,sBAAsB;QACtB,IAAI,QAAQ,YAAY,MAAM,EAAE;YAC9B,yFAAyF;YACzF,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC7C,IAAI,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgD,CAAC,UAAU,CAAC,QAAQ,EAAE;oBAC9F,uDAAuD;oBACvD,OAAO,IAAI,CAAA;iBACZ;qBAAM,IACL,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBAC1B,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,YAAY,MAAM;oBAC5D,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC,SAAS,CAAC,QAAQ;oBAC1E,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EACrD;oBACA,yDAAyD;oBACzD,OAAO,IAAI,CAAA;iBACZ;qBAAM;oBACL,OAAO,KAAK,CAAA;iBACb;aACF;SACF;QACD,oHAAoH;QACpH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAClD,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,oBAAoB,CAAA;IAC7D,CAAC;IAED,MAAM,CAAC,OAAqB,EAAE,OAAoB;;QAChD,oGAAoG;QACpG,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,2EAA2E;YAC3E,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACvC,mBAAmB;gBACnB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;aAC/E,CAAC,CAAA;SACH;aAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACnC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,YAAY,EAAE;gBACrE,qDAAqD;gBACrD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,qBAAqB,EAAE;oBACnD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAkB,CAAC,OAAO;oBAClD,mBAAmB;oBACnB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;iBAC/E,CAAC,CAAA;aACH;YACD,6EAA6E;YAC7E,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAA;SACtE;QACD,yFAAyF;QACzF,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,SAAS,mCAAI,mBAAmB,CAAA;QAEtE,4FAA4F;QAC5F,uEAAuE;QACvE,4EAA4E;QAC5E,kDAAkD;QAClD,MAAM,8BAA8B,GAClC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QAChF,MAAM,iBAAiB,GACrB,8BAA8B,IAAI,IAAI,CAAC,wBAAwB,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE/F,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACnC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC3B,KAAK,QAAQ,CAAC,EAAE;oBACd,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACjG,MAAK;gBACP,KAAK,QAAQ,CAAC,EAAE;oBACd,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACjG,MAAK;gBACP,KAAK,QAAQ,CAAC,EAAE;oBACd,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACjG,MAAK;gBACP,KAAK,QAAQ,CAAC,KAAK;oBACjB,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACpG,MAAK;gBACP;oBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;aAChD;SACF;QAED,IAAI,gBAAgB,GAAc,SAAS,CAAC,IAAI,CAC9C,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAChF,CAAA;QACD,8FAA8F;QAC9F,IAAI,iBAAiB,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;YAC7C,MAAM,yBAAyB,GAAG,kBAAkB,CAClD,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAC3E,CAAA;YAED,IAAI,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAEpC,kEAAkE;YAClE,2FAA2F;YAC3F,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBACtB,qEAAqE;gBACrE,iDAAiD;gBACjD,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAEhE,oFAAoF;gBACpF,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpF,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;iBACzF;gBAED,IAAI,gBAAgB,EAAE;oBACpB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBACnD,OAAO,CAAC,UAAU,CAChB,WAAW,CAAC,0BAA0B,EACtC,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,EAChE,KAAK,EACL,IAAI,CAAC,OAAO,CAAC,SAAS,CACvB,CAAA;oBACD,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;iBAC7E;qBAAM;oBACL,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBACnD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;oBAC7G,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;iBACxD;aACF;YAED,4EAA4E;YAC5E,2FAA2F;YAC3F,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;gBAC7C,IAAI,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;gBAEpG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;gBAChH,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;aACzC;YAED,kHAAkH;YAClH,4EAA4E;YAC5E,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,YAAY,EAAE;gBACnD,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;aACtD;YAED,8FAA8F;YAC9F,0BAA0B;YAC1B,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAA;aACxF;iBAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAA;aACrF;iBAAM;gBACL,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE;oBACpC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;oBACpD,IAAI,CAAC,OAAO,CAAC,SAAS;oBACtB,gBAAgB;iBACjB,CAAC,CAAA;aACH;SACF;QAED,oGAAoG;QACpG,8CAA8C;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,YAAY,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpF,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;aACzE;iBAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBACnC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAA;aACrF;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,YAAY,EAAE;gBAC5E,oFAAoF;gBACpF,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE;oBACpC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;oBACnD,IAAI,CAAC,OAAO,CAAC,SAAS;oBACtB,CAAC;iBACF,CAAC,CAAA;aACH;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACnD,0FAA0F;gBAC1F,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;aAChF;SACF;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5G,CAAC;CACF;AAED,2BAA2B;AAC3B,SAAS,SAAS,CAChB,OAAqB,EACrB,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAyB,EAC3E,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;IAE1B,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,KAAI,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;QAC1E,MAAM,IAAI,KAAK,CACb,0BAA0B,cAAc,CAAC,MAAM,oCAAoC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CACzG,CAAA;KACF;IAED,MAAM,KAAK,GAAG,IAAI,OAAO,CACvB,KAAiC,EACjC,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EAC/D,SAAS,CACV,CAAA;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAEpD,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE;QACtC,MAAM,MAAM,GAAU;YACpB,6DAA6D;YAC7D,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,4EAA4E;YAC5E,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC7F,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAChD,WAAW;SACZ,CAAA;QACD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KACnF;SAAM,IAAI,SAAS,IAAI,SAAS,CAAC,YAAY,EAAE;QAC9C,MAAM,MAAM,GAAU;YACpB,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACrE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAChD,WAAW;SACZ,CAAA;QACD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KACpF;AACH,CAAC;AAED,2BAA2B;AAC3B,SAAS,SAAS,CAChB,OAAqB,EACrB,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAyB,EAC3E,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;IAE1B,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,KAAI,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;QAC1E,MAAM,IAAI,KAAK,CACb,0BAA0B,cAAc,CAAC,MAAM,oCAAoC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CACzG,CAAA;KACF;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzC,KAAK,EAAE,KAAiC;QACxC,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAiC,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,YAAY,CAAC,CAAA;IAE7G,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE;QACtC,MAAM,MAAM,GAAU;YACpB,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC7F,IAAI;YACJ,WAAW;SACZ,CAAA;QACD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KACnF;SAAM,IAAI,SAAS,IAAI,SAAS,CAAC,YAAY,EAAE;QAC9C,MAAM,MAAM,GAAU;YACpB,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACrE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,IAAI;YACJ,WAAW;SACZ,CAAA;QACD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KACpF;AACH,CAAC;AAED,SAAS,SAAS,CAChB,OAAqB,EACrB,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAyB,EAC3E,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;;IAE1B,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,KAAI,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;QAC1E,MAAM,IAAI,KAAK,CACb,0BAA0B,cAAc,CAAC,MAAM,oCAAoC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CACzG,CAAA;KACF;IAED,0EAA0E;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAa,CAAA;IACnD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzC,KAAK,EAAE,OAAO;QACd,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,uBAAuB,GAC3B,iBAAiB,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAA;IAEjG,MAAM,cAAc,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAA;IAE1E,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;IACjC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAClG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAEvD,yCAAyC;IACzC,wFAAwF;IACxF,qFAAqF;IACrF,IAAI,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAA;IAC9C,IAAI,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACtD,IAAI,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEvE,IAAI,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3C,IAAI,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACxD,IAAI,iBAAiB,CAAC,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC/D,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAA;SAC9C;aAAM,IACL,CAAC,iBAAiB,CAAC,QAAQ;YAC3B,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACpG;YACA,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAA;SACvC;KACF;IAED,SAAS,CAAC,OAAO,CACf,iBAAiB,EACjB,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,mBAAmB,CACnF,CAAA;IACD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,iEAAiE;AACjE,SAAS,YAAY,CACnB,OAAqB,EACrB,IAA2B,EAC3B,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;;IAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAoC,CAAA;IACvD,IAAI,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,MAAM,KAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;QACpF,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,cAAc,CAAC,MAAM,oCAAoC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAC9G,CAAA;KACF;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;IACtC,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,mBAAmB,CAAA;IAEzG,gFAAgF;IAChF,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE;YACpC,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;SACpF;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE;YAC3C,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;SACpF;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE;YACzC,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;SACpF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;SACtC;KACF;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,oBAAoB,CAAC;QACjD,KAAK,EAAE,KAAoC;QAC3C,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAClG,MAAM,SAAS,GAAG,iBAAiB;QACjC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAEvF,aAAa;IACb,uDAAuD;IACvD,MAAM,QAAQ,GAAG,6BAA6B,CAAC,KAAoC,CAAC,CAAA;IACpF,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAE,EAAE;QACzC,OAAO,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAEpD,IAAI,UAAU,GAAG,KAAK,CAAC,SAAS,CAAA;IAChC,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAA;QAEzF,qEAAqE;QACrE,MAAM,kBAAkB,GAAG,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAE5F,IAAI,cAAc,CAAA;QAClB,IAAI,aAAa,CAAA;QAEjB,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE;YAC3B,cAAc,GAAG,WAAW,CAAA;YAC5B,aAAa,GAAG,cAAc,CAAA;SAC/B;aAAM;YACL,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,cAAc,GAAG,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAEvD,MAAM,qBAAqB,GAAG,QAAQ,YAAY,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YAC5F,aAAa,GAAG,qBAAqB,CAAC,CAAC,CAAE,QAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAA;SACxG;QAED,IAAI,SAAS,YAAY,MAAM,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;YACjC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,OAAmB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;YACpF,MAAM,iBAAiB,GAAgB,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAA;YAE9F,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAc,CAAC,CAAA;YAC5G,SAAS,CAAC,SAAS,CACjB,OAAO,CAAC,aAAa,EACrB;gBACE;oBACE,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO;oBAClE,IAAI,EAAE,mBAAmB,CAAC,UAAU,CAAC;oBACrC,cAAc,EAAE,iBAAiB;oBACjC,QAAQ,EAAE,CAAC;oBACX,gBAAgB,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC3D;aACF,EACD,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAC/B,CAAA;YAED,wEAAwE;YACxE,IAAI,kBAAkB,GAAG,WAAW,CAAA;YACpC,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE;gBAC3B,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBAClD,IAAI,MAAM,GAAG,QAAQ,YAAY,MAAM,CAAA;gBACvC,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAE,QAAmB,CAAC,SAAS,CAAC,MAAM,CAAE,QAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;gBAChH,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBAEpD,IAAI,WAAW,EAAE;oBACf,IAAI,WAAW,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE;wBACtD,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAA;qBACzC;yBAAM,IACL,CAAC,WAAW,CAAC,QAAQ;wBACrB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EACxF;wBACA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAA;qBACrC;iBACF;aACF;YAED,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAA;YAEpD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;SAChE;aAAM,IAAI,SAAS,YAAY,MAAM,EAAE;YACtC,MAAM,QAAQ,GAAU;gBACtB,aAAa;gBACb,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB;gBACpC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxC,sBAAsB,CAAC,QAAQ,CAAC;gBAChC,WAAW,IAAI,CAAC,KAAK,CAAC,EAAE,cAAc;aACvC,CAAA;YACD,IAAI,SAAS;gBAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;SACrF;aAAM,IAAI,SAAS,YAAY,IAAI,EAAE;YACpC,MAAM,QAAQ,GAAU;gBACtB,aAAa;gBACb,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB;gBACrC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBACnD,WAAW,IAAI,CAAC,KAAK,CAAC;aACvB,CAAA;YACD,IAAI,SAAS;gBAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;SACrF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACxC;QAED,wDAAwD;QACxD,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;YAC5B,IAAI,WAAW,CAAC,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBACpD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAA;aAClF;iBAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE;gBAC3D,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAA;aACtE;SACF;QAED,SAAS,IAAI,OAAO,CAAC,MAAM,CAAA;QAC3B,UAAU,GAAG,cAAc,CAAA;KAC5B;AACH,CAAC;AAED,mHAAmH;AACnH,SAAS,iBAAiB,CAAC,KAAiD;IAC1E,OAAO,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,YAAY,CAAC,WAAwB;IAC5C,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAA;AACnD,CAAC"}
1
+ {"version":3,"file":"uniswap.js","sourceRoot":"","sources":["../../../../../src/entities/actions/uniswap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EACL,KAAK,IAAI,OAAO,EAChB,KAAK,IAAI,OAAO,EAChB,IAAI,IAAI,MAAM,EACd,SAAS,EACT,iBAAiB,IAAI,mBAAmB,EACxC,OAAO,GACR,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,eAAe,EACf,QAAQ,EAIR,aAAa,EACb,UAAU,EAEV,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAY,SAAS,EAAyB,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACjG,OAAO,EAAW,gBAAgB,EAAe,MAAM,YAAY,CAAA;AACnE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EAEX,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,SAAS,EAAgB,MAAM,QAAQ,CAAA;AAQhD,4EAA4E;AAC5E,oDAAoD;AACpD,8EAA8E;AAC9E,2FAA2F;AAC3F,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,kDAA6B,CAAA;AAC/B,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;AAqBD,MAAM,iCAAiC,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAS9D,mFAAmF;AACnF,4DAA4D;AAC5D,MAAM,OAAO,YAAY;IAIvB,YAAmB,KAAiD,EAAS,OAAoB;QAA9E,UAAK,GAAL,KAAK,CAA4C;QAAS,YAAO,GAAP,OAAO,CAAa;QAHxF,cAAS,GAAqB,gBAAgB,CAAC,YAAY,CAAA;QAIlE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAExF,IAAI,OAAO,CAAC,gBAAgB,EAAE;YAC5B,8FAA8F;YAC9F,8FAA8F;YAC9F,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;YAC/G,IAAI,OAAO,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,YAAY,EAAE;gBAChE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;aACvE;YACD,IAAI,OAAO,CAAC,gBAAgB;gBAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;YAC/G,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAA;aACF;SACF;QAED,IAAI,OAAO,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,YAAY,EAAE;YAChE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,mBAAmB,EAAE;gBACnE,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAA;aACF;YACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;SACzB;aAAM,IACL,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,OAAO,CAAC,gBAAgB;YAC7B,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAC7B;YACA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;SACzB;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;SACxB;IACH,CAAC;IAED,IAAI,OAAO;QACT,IAAI,MAAM,GAAG,IAAI,CAAA;QACjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACnC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,CAAA;SACtD;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,kDAAkD;IAClD,kEAAkE;IAClE,uCAAuC;IACvC,mFAAmF;IACnF,gGAAgG;IAChG,mGAAmG;IACnG,qCAAqC;IACrC,IAAI,iBAAiB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEhC,IAAI,SAAS,YAAY,MAAM,EAAE;YAC/B,mIAAmI;YACnI,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ;gBACxC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgD,CAAC,SAAS,CAAC,QAAQ,CAC1F,CAAA;SACF;QACD,+EAA+E;QAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAA;IACjD,CAAC;IAED,IAAI,mBAAmB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEhC,IAAI,SAAS,YAAY,MAAM,EAAE;YAC/B,2HAA2H;YAC3H,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ;gBACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgD,CAAC,SAAS,CAAC,QAAQ,CACzF,CAAA;SACF;QACD,+DAA+D;QAC/D,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,kBAAkB;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAE5D,sBAAsB;QACtB,IAAI,QAAQ,YAAY,MAAM,EAAE;YAC9B,uFAAuF;YACvF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC9C,IAAK,SAAoD,CAAC,UAAU,CAAC,QAAQ,EAAE;oBAC7E,uDAAuD;oBACvD,OAAO,IAAI,CAAA;iBACZ;qBAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9F,IAAI,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBAC5D,iEAAiE;oBACjE,IACE,UAAU,YAAY,MAAM;wBAC5B,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACpG;wBACA,OAAO,IAAI,CAAA;qBACZ;yBAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;wBACvG,2BAA2B;wBAC3B,OAAO,IAAI,CAAA;qBACZ;iBACF;aACF;SACF;QACD,0BAA0B;QAC1B,gFAAgF;QAChF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,oBAAoB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAE5D,sBAAsB;QACtB,IAAI,QAAQ,YAAY,MAAM,EAAE;YAC9B,yFAAyF;YACzF,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC7C,IAAI,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgD,CAAC,UAAU,CAAC,QAAQ,EAAE;oBAC9F,uDAAuD;oBACvD,OAAO,IAAI,CAAA;iBACZ;qBAAM,IACL,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBAC1B,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,YAAY,MAAM;oBAC5D,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC,SAAS,CAAC,QAAQ;oBAC1E,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EACrD;oBACA,yDAAyD;oBACzD,OAAO,IAAI,CAAA;iBACZ;qBAAM;oBACL,OAAO,KAAK,CAAA;iBACb;aACF;SACF;QACD,oHAAoH;QACpH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAClD,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,oBAAoB,CAAA;IAC7D,CAAC;IAED,MAAM,CAAC,OAAqB,EAAE,OAAoB;;QAChD,oGAAoG;QACpG,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,2EAA2E;YAC3E,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACvC,mBAAmB;gBACnB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;aAC/E,CAAC,CAAA;SACH;aAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACnC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,YAAY,EAAE;gBACrE,qDAAqD;gBACrD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,qBAAqB,EAAE;oBACnD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAkB,CAAC,OAAO;oBAClD,mBAAmB;oBACnB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;iBAC/E,CAAC,CAAA;aACH;YACD,6EAA6E;YAC7E,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAA;SACtE;QACD,yFAAyF;QACzF,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,SAAS,mCAAI,mBAAmB,CAAA;QAEtE,4FAA4F;QAC5F,uEAAuE;QACvE,4EAA4E;QAC5E,kDAAkD;QAClD,MAAM,8BAA8B,GAClC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QAChF,MAAM,iBAAiB,GACrB,8BAA8B,IAAI,IAAI,CAAC,wBAAwB,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE/F,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACnC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC3B,KAAK,QAAQ,CAAC,EAAE;oBACd,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACjG,MAAK;gBACP,KAAK,QAAQ,CAAC,EAAE;oBACd,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACjG,MAAK;gBACP,KAAK,QAAQ,CAAC,EAAE;oBACd,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACjG,MAAK;gBACP,KAAK,QAAQ,CAAC,KAAK;oBACjB,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACpG,MAAK;gBACP;oBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;aAChD;SACF;QAED,IAAI,gBAAgB,GAAc,SAAS,CAAC,IAAI,CAC9C,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAChF,CAAA;QACD,8FAA8F;QAC9F,IAAI,iBAAiB,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;YAC7C,MAAM,yBAAyB,GAAG,kBAAkB,CAClD,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAC3E,CAAA;YAED,IAAI,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAEpC,kEAAkE;YAClE,2FAA2F;YAC3F,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBACtB,qEAAqE;gBACrE,iDAAiD;gBACjD,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAEhE,oFAAoF;gBACpF,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpF,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;iBACzF;gBAED,IAAI,gBAAgB,EAAE;oBACpB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBACnD,OAAO,CAAC,UAAU,CAChB,WAAW,CAAC,0BAA0B,EACtC,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,EAChE,KAAK,EACL,IAAI,CAAC,OAAO,CAAC,SAAS,CACvB,CAAA;oBACD,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;iBAC7E;qBAAM;oBACL,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBACnD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;oBAC7G,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;iBACxD;aACF;YAED,4EAA4E;YAC5E,2FAA2F;YAC3F,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;gBAC7C,IAAI,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;gBAEpG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;gBAChH,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;aACzC;YAED,kHAAkH;YAClH,4EAA4E;YAC5E,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,YAAY,EAAE;gBACnD,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;aACtD;YAED,8FAA8F;YAC9F,0BAA0B;YAC1B,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAA;aACxF;iBAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAA;aACrF;iBAAM;gBACL,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE;oBACpC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;oBACpD,IAAI,CAAC,OAAO,CAAC,SAAS;oBACtB,gBAAgB;iBACjB,CAAC,CAAA;aACH;SACF;QAED,oGAAoG;QACpG,8CAA8C;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,YAAY,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpF,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;aACzE;iBAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBACnC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAA;aACrF;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,YAAY,EAAE;gBAC5E,oFAAoF;gBACpF,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE;oBACpC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;oBACnD,IAAI,CAAC,OAAO,CAAC,SAAS;oBACtB,CAAC;iBACF,CAAC,CAAA;aACH;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACpF,uFAAuF;gBACvF,2FAA2F;gBAC3F,0FAA0F;gBAC1F,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;aAChF;SACF;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5G,CAAC;CACF;AAED,2BAA2B;AAC3B,SAAS,SAAS,CAChB,OAAqB,EACrB,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAyB,EAC3E,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;IAE1B,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,KAAI,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;QAC1E,MAAM,IAAI,KAAK,CACb,0BAA0B,cAAc,CAAC,MAAM,oCAAoC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CACzG,CAAA;KACF;IAED,MAAM,KAAK,GAAG,IAAI,OAAO,CACvB,KAAiC,EACjC,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EAC/D,SAAS,CACV,CAAA;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAEpD,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE;QACtC,MAAM,MAAM,GAAU;YACpB,6DAA6D;YAC7D,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,4EAA4E;YAC5E,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC7F,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAChD,WAAW;SACZ,CAAA;QACD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KACnF;SAAM,IAAI,SAAS,IAAI,SAAS,CAAC,YAAY,EAAE;QAC9C,MAAM,MAAM,GAAU;YACpB,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACrE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAChD,WAAW;SACZ,CAAA;QACD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KACpF;AACH,CAAC;AAED,2BAA2B;AAC3B,SAAS,SAAS,CAChB,OAAqB,EACrB,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAyB,EAC3E,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;IAE1B,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,KAAI,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;QAC1E,MAAM,IAAI,KAAK,CACb,0BAA0B,cAAc,CAAC,MAAM,oCAAoC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CACzG,CAAA;KACF;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzC,KAAK,EAAE,KAAiC;QACxC,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAiC,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,YAAY,CAAC,CAAA;IAE7G,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE;QACtC,MAAM,MAAM,GAAU;YACpB,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC7F,IAAI;YACJ,WAAW;SACZ,CAAA;QACD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KACnF;SAAM,IAAI,SAAS,IAAI,SAAS,CAAC,YAAY,EAAE;QAC9C,MAAM,MAAM,GAAU;YACpB,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACrE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,IAAI;YACJ,WAAW;SACZ,CAAA;QACD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KACpF;AACH,CAAC;AAED,SAAS,SAAS,CAChB,OAAqB,EACrB,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAyB,EAC3E,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;;IAE1B,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,KAAI,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;QAC1E,MAAM,IAAI,KAAK,CACb,0BAA0B,cAAc,CAAC,MAAM,oCAAoC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CACzG,CAAA;KACF;IAED,0EAA0E;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAa,CAAA;IACnD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzC,KAAK,EAAE,OAAO;QACd,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,uBAAuB,GAC3B,iBAAiB,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAA;IAEjG,MAAM,cAAc,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAA;IAE1E,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;IACjC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IACpG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAEvD,yCAAyC;IACzC,wFAAwF;IACxF,qFAAqF;IACrF,IAAI,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAA;IAC9C,IAAI,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACtD,IAAI,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEvE,IAAI,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3C,IAAI,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACxD,IAAI,iBAAiB,CAAC,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC/D,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAA;SAC9C;aAAM,IACL,CAAC,iBAAiB,CAAC,QAAQ;YAC3B,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACpG;YACA,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAA;SACvC;KACF;IAED,SAAS,CAAC,OAAO,CACf,iBAAiB,EACjB,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,mBAAmB,CACnF,CAAA;IACD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,iEAAiE;AACjE,SAAS,YAAY,CACnB,OAAqB,EACrB,IAA2B,EAC3B,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;;IAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAoC,CAAA;IACvD,IAAI,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,MAAM,KAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;QACpF,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,cAAc,CAAC,MAAM,oCAAoC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAC9G,CAAA;KACF;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;IACtC,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,mBAAmB,CAAA;IAEzG,gFAAgF;IAChF,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE;YACpC,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;SACpF;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE;YAC3C,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;SACpF;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE;YACzC,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;SACpF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;SACtC;KACF;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,oBAAoB,CAAC;QACjD,KAAK,EAAE,KAAoC;QAC3C,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAClG,MAAM,SAAS,GAAG,iBAAiB;QACjC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAEvF,aAAa;IACb,6GAA6G;IAC7G,MAAM,QAAQ,GAAG,6BAA6B,CAAC,KAAoC,CAAC,CAAA;IACpF,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAE,EAAE;QACzC,OAAO,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAEpD,IAAI,UAAU,GAAG,KAAK,CAAC,SAAS,CAAA;IAChC,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAA;QAEzF,qEAAqE;QACrE,MAAM,kBAAkB,GAAG,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAE5F,IAAI,cAAc,CAAA;QAClB,IAAI,aAAa,CAAA;QAEjB,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE;YAC3B,cAAc,GAAG,WAAW,CAAA;YAC5B,aAAa,GAAG,cAAc,CAAA;SAC/B;aAAM;YACL,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,cAAc,GAAG,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAEvD,MAAM,qBAAqB,GAAG,QAAQ,YAAY,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YAC5F,aAAa,GAAG,qBAAqB,CAAC,CAAC,CAAE,QAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAA;SACxG;QAED,IAAI,SAAS,YAAY,MAAM,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;YACjC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,OAAmB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;YACpF,MAAM,iBAAiB,GAAgB,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAA;YAE9F,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAc,CAAC,CAAA;YAC5G,SAAS,CAAC,SAAS,CACjB,OAAO,CAAC,aAAa,EACrB;gBACE;oBACE,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO;oBAClE,IAAI,EAAE,mBAAmB,CAAC,UAAU,CAAC;oBACrC,cAAc,EAAE,iBAAiB;oBACjC,QAAQ,EAAE,CAAC;oBACX,gBAAgB,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC3D;aACF,EACD,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CACjC,CAAA;YAED,wEAAwE;YACxE,IAAI,kBAAkB,GAAG,WAAW,CAAA;YACpC,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE;gBAC3B,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBAClD,IAAI,MAAM,GAAG,QAAQ,YAAY,MAAM,CAAA;gBACvC,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAE,QAAmB,CAAC,SAAS,CAAC,MAAM,CAAE,QAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;gBAChH,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBAEpD,IAAI,WAAW,EAAE;oBACf,IAAI,WAAW,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE;wBACtD,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAA;qBACzC;yBAAM,IACL,CAAC,WAAW,CAAC,QAAQ;wBACrB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EACxF;wBACA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAA;qBACrC;iBACF;aACF;YAED,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAA;YAEpD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;SAChE;aAAM,IAAI,SAAS,YAAY,MAAM,EAAE;YACtC,MAAM,QAAQ,GAAU;gBACtB,aAAa;gBACb,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB;gBACpC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxC,sBAAsB,CAAC,QAAQ,CAAC;gBAChC,WAAW,IAAI,CAAC,KAAK,CAAC,EAAE,cAAc;aACvC,CAAA;YACD,IAAI,SAAS;gBAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;SACrF;aAAM,IAAI,SAAS,YAAY,IAAI,EAAE;YACpC,MAAM,QAAQ,GAAU;gBACtB,aAAa;gBACb,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB;gBACrC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBACnD,WAAW,IAAI,CAAC,KAAK,CAAC;aACvB,CAAA;YACD,IAAI,SAAS;gBAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;SACrF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACxC;QAED,wDAAwD;QACxD,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;YAC5B,IAAI,WAAW,CAAC,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBACpD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAA;aAClF;iBAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE;gBAC3D,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAA;aACtE;SACF;QAED,SAAS,IAAI,OAAO,CAAC,MAAM,CAAA;QAC3B,UAAU,GAAG,cAAc,CAAA;KAC5B;AACH,CAAC;AAED,mHAAmH;AACnH,SAAS,iBAAiB,CAAC,KAAiD;IAC1E,OAAO,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,YAAY,CAAC,WAAwB;IAC5C,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAA;AACnD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { SwapRouter } from './swapRouter';
2
2
  export type { MigrateV3ToV4Options, SignedRouteOptions, EIP712Payload } from './swapRouter';
3
+ export * from './types/encodeSwaps';
3
4
  export * from './entities';
4
5
  export * from './utils/routerTradeAdapter';
5
6
  export { RoutePlanner, CommandType, COMMAND_DEFINITION, Parser, Subparser } from './utils/routerCommands';
@@ -8,4 +9,6 @@ export { UNIVERSAL_ROUTER_CREATION_BLOCK, UNIVERSAL_ROUTER_ADDRESS, SWAP_PROXY_A
8
9
  export { CommandParser, GenericCommandParser } from './utils/commandParser';
9
10
  export type { UniversalRouterCommand, UniversalRouterCall, Param, CommandsDefinition } from './utils/commandParser';
10
11
  export type { Permit2Permit } from './utils/inputTokens';
12
+ export { normalizeEncodeSwapsSpec } from './utils/normalizeEncodeSwapsSpec';
13
+ export { validateEncodeSwaps } from './utils/validateEncodeSwaps';
11
14
  export { NONCE_SKIP_CHECK, generateNonce, EXECUTE_SIGNED_TYPES, getUniversalRouterDomain } from './utils/eip712';
@@ -1,8 +1,11 @@
1
1
  export { SwapRouter } from './swapRouter';
2
+ export * from './types/encodeSwaps';
2
3
  export * from './entities';
3
4
  export * from './utils/routerTradeAdapter';
4
5
  export { RoutePlanner, CommandType, COMMAND_DEFINITION, Parser, Subparser } from './utils/routerCommands';
5
6
  export { UNIVERSAL_ROUTER_CREATION_BLOCK, UNIVERSAL_ROUTER_ADDRESS, SWAP_PROXY_ADDRESS, ROUTER_AS_RECIPIENT, WETH_ADDRESS, UniversalRouterVersion, isAtLeastV2_1_1, } from './utils/constants';
6
7
  export { CommandParser, GenericCommandParser } from './utils/commandParser';
8
+ export { normalizeEncodeSwapsSpec } from './utils/normalizeEncodeSwapsSpec';
9
+ export { validateEncodeSwaps } from './utils/validateEncodeSwaps';
7
10
  export { NONCE_SKIP_CHECK, generateNonce, EXECUTE_SIGNED_TYPES, getUniversalRouterDomain } from './utils/eip712';
8
11
  //# sourceMappingURL=index.js.map
@@ -1 +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,EACtB,eAAe,GAChB,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,cAAc,qBAAqB,CAAA;AACnC,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,EACtB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAG3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -6,6 +6,7 @@ import { Trade as RouterTrade } from '@centurion_project/router-sdk';
6
6
  import { Currency, TradeType } from '@centurion_project/sdk-core';
7
7
  import { SwapOptions } from './entities/actions/uniswap';
8
8
  import { AcrossV4DepositV3Params } from './entities/actions/across';
9
+ import { SwapSpecification, SwapStep } from './types/encodeSwaps';
9
10
  import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer';
10
11
  export type SwapRouterConfig = {
11
12
  sender?: string;
@@ -40,6 +41,20 @@ export declare abstract class SwapRouter {
40
41
  static INTERFACE: Interface;
41
42
  static PROXY_INTERFACE: Interface;
42
43
  static swapCallParameters(trades: RouterTrade<Currency, Currency, TradeType>, options: SwapOptions, bridgeOptions?: AcrossV4DepositV3Params[]): MethodParameters;
44
+ /**
45
+ * Encodes router-provided swap steps inside the SDK safety envelope.
46
+ *
47
+ * Routers own `swapSteps` (V2/V3/V4 swaps, plus any `WRAP_ETH` / `UNWRAP_WETH` required by the route).
48
+ * The SDK owns ingress, fees, final settlement, exact-output refund, and optional `safeMode`.
49
+ *
50
+ * Router contract: end with final output in `spec.routing.outputToken`; for `EXACT_OUTPUT`, unused input
51
+ * must end in `spec.routing.inputToken`. Don't include a top-level `SWEEP` — the SDK appends settlement,
52
+ * refund, and safeMode sweeps itself.
53
+ *
54
+ * Router custody with `payerIsUser = false` is deliberate for safety, even if it costs an extra command
55
+ * or transfer; the SDK does not infer route topology on behalf of routers.
56
+ */
57
+ static encodeSwaps(spec: SwapSpecification, swapSteps: SwapStep[]): MethodParameters;
43
58
  /**
44
59
  * Generate EIP712 payload for signed execution (no signing performed)
45
60
  * Decodes existing execute() calldata and prepares it for signing
@@ -80,8 +95,9 @@ export declare abstract class SwapRouter {
80
95
  */
81
96
  private static encodePlan;
82
97
  /**
83
- * Encodes a planned route into calldata targeting the SwapProxy contract.
98
+ * Wraps an inner UR plan in calldata targeting the SwapProxy contract.
84
99
  * The proxy pulls ERC20 tokens from the user into the UR, then executes commands.
85
100
  */
86
101
  private static encodeProxyPlan;
102
+ private static encodeProxyCall;
87
103
  }