@kittycorn-labs/universal-router-sdk 1.4.42 → 2.0.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 (244) hide show
  1. package/README.md +312 -0
  2. package/dist/cjs/src/abis/UniversalRouter.json +740 -0
  3. package/dist/{entities → cjs/src/entities}/Command.d.ts +12 -12
  4. package/dist/cjs/src/entities/Command.js +9 -0
  5. package/dist/cjs/src/entities/Command.js.map +1 -0
  6. package/dist/cjs/src/entities/actions/across.d.ts +21 -0
  7. package/dist/cjs/src/entities/actions/across.js +7 -0
  8. package/dist/cjs/src/entities/actions/across.js.map +1 -0
  9. package/dist/{entities → cjs/src/entities}/actions/index.d.ts +3 -2
  10. package/dist/cjs/src/entities/actions/index.js +7 -0
  11. package/dist/cjs/src/entities/actions/index.js.map +1 -0
  12. package/dist/cjs/src/entities/actions/uniswap.d.ts +94 -0
  13. package/dist/cjs/src/entities/actions/uniswap.js +740 -0
  14. package/dist/cjs/src/entities/actions/uniswap.js.map +1 -0
  15. package/dist/{entities → cjs/src/entities}/actions/unwrapWETH.d.ts +12 -12
  16. package/dist/cjs/src/entities/actions/unwrapWETH.js +33 -0
  17. package/dist/cjs/src/entities/actions/unwrapWETH.js.map +1 -0
  18. package/dist/{entities → cjs/src/entities}/index.d.ts +2 -2
  19. package/dist/cjs/src/entities/index.js +6 -0
  20. package/dist/cjs/src/entities/index.js.map +1 -0
  21. package/dist/cjs/src/index.d.ts +19 -0
  22. package/dist/cjs/src/index.js +43 -0
  23. package/dist/cjs/src/index.js.map +1 -0
  24. package/dist/cjs/src/kittycorn.d.ts +9 -0
  25. package/dist/cjs/src/kittycorn.js +26 -0
  26. package/dist/cjs/src/kittycorn.js.map +1 -0
  27. package/dist/cjs/src/swapRouter.d.ts +123 -0
  28. package/dist/cjs/src/swapRouter.js +445 -0
  29. package/dist/cjs/src/swapRouter.js.map +1 -0
  30. package/dist/cjs/src/types/encodeSwaps.d.ts +197 -0
  31. package/dist/cjs/src/types/encodeSwaps.js +3 -0
  32. package/dist/cjs/src/types/encodeSwaps.js.map +1 -0
  33. package/dist/{utils → cjs/src/utils}/commandParser.d.ts +36 -34
  34. package/dist/cjs/src/utils/commandParser.js +154 -0
  35. package/dist/cjs/src/utils/commandParser.js.map +1 -0
  36. package/dist/cjs/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
  37. package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js +46 -0
  38. package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js.map +1 -0
  39. package/dist/{utils → cjs/src/utils}/constants.d.ts +46 -30
  40. package/dist/cjs/src/utils/constants.js +777 -0
  41. package/dist/cjs/src/utils/constants.js.map +1 -0
  42. package/dist/cjs/src/utils/directTransfers.d.ts +15 -0
  43. package/dist/cjs/src/utils/directTransfers.js +381 -0
  44. package/dist/cjs/src/utils/directTransfers.js.map +1 -0
  45. package/dist/cjs/src/utils/eip712.d.ts +17 -0
  46. package/dist/cjs/src/utils/eip712.js +44 -0
  47. package/dist/cjs/src/utils/eip712.js.map +1 -0
  48. package/dist/cjs/src/utils/encodeSwapStep.d.ts +4 -0
  49. package/dist/cjs/src/utils/encodeSwapStep.js +62 -0
  50. package/dist/cjs/src/utils/encodeSwapStep.js.map +1 -0
  51. package/dist/cjs/src/utils/encodeV4Action.d.ts +7 -0
  52. package/dist/cjs/src/utils/encodeV4Action.js +84 -0
  53. package/dist/cjs/src/utils/encodeV4Action.js.map +1 -0
  54. package/dist/{utils → cjs/src/utils}/getCurrencyAddress.d.ts +2 -2
  55. package/dist/cjs/src/utils/getCurrencyAddress.js +9 -0
  56. package/dist/cjs/src/utils/getCurrencyAddress.js.map +1 -0
  57. package/dist/{utils → cjs/src/utils}/inputTokens.d.ts +23 -23
  58. package/dist/cjs/src/utils/inputTokens.js +58 -0
  59. package/dist/cjs/src/utils/inputTokens.js.map +1 -0
  60. package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.d.ts +6 -0
  61. package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.js +34 -0
  62. package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.js.map +1 -0
  63. package/dist/{utils → cjs/src/utils}/numbers.d.ts +7 -6
  64. package/dist/cjs/src/utils/numbers.js +27 -0
  65. package/dist/cjs/src/utils/numbers.js.map +1 -0
  66. package/dist/{utils → cjs/src/utils}/pathCurrency.d.ts +3 -3
  67. package/dist/cjs/src/utils/pathCurrency.js +27 -0
  68. package/dist/cjs/src/utils/pathCurrency.js.map +1 -0
  69. package/dist/cjs/src/utils/portionFees.d.ts +14 -0
  70. package/dist/cjs/src/utils/portionFees.js +40 -0
  71. package/dist/cjs/src/utils/portionFees.js.map +1 -0
  72. package/dist/cjs/src/utils/routerBalanceSteps.d.ts +31 -0
  73. package/dist/cjs/src/utils/routerBalanceSteps.js +293 -0
  74. package/dist/cjs/src/utils/routerBalanceSteps.js.map +1 -0
  75. package/dist/{utils → cjs/src/utils}/routerCommands.d.ts +77 -64
  76. package/dist/cjs/src/utils/routerCommands.js +331 -0
  77. package/dist/cjs/src/utils/routerCommands.js.map +1 -0
  78. package/dist/{utils → cjs/src/utils}/routerTradeAdapter.d.ts +73 -73
  79. package/dist/cjs/src/utils/routerTradeAdapter.js +139 -0
  80. package/dist/cjs/src/utils/routerTradeAdapter.js.map +1 -0
  81. package/dist/cjs/src/utils/toV4URVersion.d.ts +3 -0
  82. package/dist/cjs/src/utils/toV4URVersion.js +17 -0
  83. package/dist/cjs/src/utils/toV4URVersion.js.map +1 -0
  84. package/dist/cjs/src/utils/validateEncodeSwaps.d.ts +2 -0
  85. package/dist/cjs/src/utils/validateEncodeSwaps.js +344 -0
  86. package/dist/cjs/src/utils/validateEncodeSwaps.js.map +1 -0
  87. package/dist/esm/package.json +1 -0
  88. package/dist/esm/src/abis/UniversalRouter.json +740 -0
  89. package/dist/esm/src/entities/Command.d.ts +12 -0
  90. package/dist/esm/src/entities/Command.js +6 -0
  91. package/dist/esm/src/entities/Command.js.map +1 -0
  92. package/dist/esm/src/entities/actions/across.d.ts +21 -0
  93. package/dist/esm/src/entities/actions/across.js +3 -0
  94. package/dist/esm/src/entities/actions/across.js.map +1 -0
  95. package/dist/esm/src/entities/actions/index.d.ts +3 -0
  96. package/dist/esm/src/entities/actions/index.js +4 -0
  97. package/dist/esm/src/entities/actions/index.js.map +1 -0
  98. package/dist/esm/src/entities/actions/uniswap.d.ts +94 -0
  99. package/dist/esm/src/entities/actions/uniswap.js +735 -0
  100. package/dist/esm/src/entities/actions/uniswap.js.map +1 -0
  101. package/dist/esm/src/entities/actions/unwrapWETH.d.ts +12 -0
  102. package/dist/esm/src/entities/actions/unwrapWETH.js +28 -0
  103. package/dist/esm/src/entities/actions/unwrapWETH.js.map +1 -0
  104. package/dist/esm/src/entities/index.d.ts +2 -0
  105. package/dist/esm/src/entities/index.js +3 -0
  106. package/dist/esm/src/entities/index.js.map +1 -0
  107. package/dist/esm/src/index.d.ts +19 -0
  108. package/dist/esm/src/index.js +15 -0
  109. package/dist/esm/src/index.js.map +1 -0
  110. package/dist/esm/src/kittycorn.d.ts +9 -0
  111. package/dist/esm/src/kittycorn.js +22 -0
  112. package/dist/esm/src/kittycorn.js.map +1 -0
  113. package/dist/esm/src/swapRouter.d.ts +123 -0
  114. package/dist/esm/src/swapRouter.js +440 -0
  115. package/dist/esm/src/swapRouter.js.map +1 -0
  116. package/dist/esm/src/types/encodeSwaps.d.ts +197 -0
  117. package/dist/esm/src/types/encodeSwaps.js +2 -0
  118. package/dist/esm/src/types/encodeSwaps.js.map +1 -0
  119. package/dist/esm/src/utils/commandParser.d.ts +36 -0
  120. package/dist/esm/src/utils/commandParser.js +146 -0
  121. package/dist/esm/src/utils/commandParser.js.map +1 -0
  122. package/dist/esm/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
  123. package/dist/esm/src/utils/computeEncodeSwapsAmounts.js +41 -0
  124. package/dist/esm/src/utils/computeEncodeSwapsAmounts.js.map +1 -0
  125. package/dist/esm/src/utils/constants.d.ts +46 -0
  126. package/dist/esm/src/utils/constants.js +768 -0
  127. package/dist/esm/src/utils/constants.js.map +1 -0
  128. package/dist/esm/src/utils/directTransfers.d.ts +15 -0
  129. package/dist/esm/src/utils/directTransfers.js +369 -0
  130. package/dist/esm/src/utils/directTransfers.js.map +1 -0
  131. package/dist/esm/src/utils/eip712.d.ts +17 -0
  132. package/dist/esm/src/utils/eip712.js +39 -0
  133. package/dist/esm/src/utils/eip712.js.map +1 -0
  134. package/dist/esm/src/utils/encodeSwapStep.d.ts +4 -0
  135. package/dist/esm/src/utils/encodeSwapStep.js +58 -0
  136. package/dist/esm/src/utils/encodeSwapStep.js.map +1 -0
  137. package/dist/esm/src/utils/encodeV4Action.d.ts +7 -0
  138. package/dist/esm/src/utils/encodeV4Action.js +80 -0
  139. package/dist/esm/src/utils/encodeV4Action.js.map +1 -0
  140. package/dist/esm/src/utils/getCurrencyAddress.d.ts +2 -0
  141. package/dist/esm/src/utils/getCurrencyAddress.js +5 -0
  142. package/dist/esm/src/utils/getCurrencyAddress.js.map +1 -0
  143. package/dist/esm/src/utils/inputTokens.d.ts +23 -0
  144. package/dist/esm/src/utils/inputTokens.js +51 -0
  145. package/dist/esm/src/utils/inputTokens.js.map +1 -0
  146. package/dist/esm/src/utils/normalizeEncodeSwapsSpec.d.ts +6 -0
  147. package/dist/esm/src/utils/normalizeEncodeSwapsSpec.js +27 -0
  148. package/dist/esm/src/utils/normalizeEncodeSwapsSpec.js.map +1 -0
  149. package/dist/esm/src/utils/numbers.d.ts +7 -0
  150. package/dist/esm/src/utils/numbers.js +19 -0
  151. package/dist/esm/src/utils/numbers.js.map +1 -0
  152. package/dist/esm/src/utils/pathCurrency.d.ts +3 -0
  153. package/dist/esm/src/utils/pathCurrency.js +23 -0
  154. package/dist/esm/src/utils/pathCurrency.js.map +1 -0
  155. package/dist/esm/src/utils/portionFees.d.ts +14 -0
  156. package/dist/esm/src/utils/portionFees.js +35 -0
  157. package/dist/esm/src/utils/portionFees.js.map +1 -0
  158. package/dist/esm/src/utils/routerBalanceSteps.d.ts +31 -0
  159. package/dist/esm/src/utils/routerBalanceSteps.js +282 -0
  160. package/dist/esm/src/utils/routerBalanceSteps.js.map +1 -0
  161. package/dist/esm/src/utils/routerCommands.d.ts +77 -0
  162. package/dist/esm/src/utils/routerCommands.js +326 -0
  163. package/dist/esm/src/utils/routerCommands.js.map +1 -0
  164. package/dist/esm/src/utils/routerTradeAdapter.d.ts +73 -0
  165. package/dist/esm/src/utils/routerTradeAdapter.js +134 -0
  166. package/dist/esm/src/utils/routerTradeAdapter.js.map +1 -0
  167. package/dist/esm/src/utils/toV4URVersion.d.ts +3 -0
  168. package/dist/esm/src/utils/toV4URVersion.js +13 -0
  169. package/dist/esm/src/utils/toV4URVersion.js.map +1 -0
  170. package/dist/esm/src/utils/validateEncodeSwaps.d.ts +2 -0
  171. package/dist/esm/src/utils/validateEncodeSwaps.js +339 -0
  172. package/dist/esm/src/utils/validateEncodeSwaps.js.map +1 -0
  173. package/dist/types/src/entities/Command.d.ts +13 -0
  174. package/dist/types/src/entities/Command.d.ts.map +1 -0
  175. package/dist/types/src/entities/actions/across.d.ts +22 -0
  176. package/dist/types/src/entities/actions/across.d.ts.map +1 -0
  177. package/dist/types/src/entities/actions/index.d.ts +4 -0
  178. package/dist/types/src/entities/actions/index.d.ts.map +1 -0
  179. package/dist/types/src/entities/actions/uniswap.d.ts +95 -0
  180. package/dist/types/src/entities/actions/uniswap.d.ts.map +1 -0
  181. package/dist/types/src/entities/actions/unwrapWETH.d.ts +13 -0
  182. package/dist/types/src/entities/actions/unwrapWETH.d.ts.map +1 -0
  183. package/dist/types/src/entities/index.d.ts +3 -0
  184. package/dist/types/src/entities/index.d.ts.map +1 -0
  185. package/dist/types/src/index.d.ts +20 -0
  186. package/dist/types/src/index.d.ts.map +1 -0
  187. package/dist/types/src/kittycorn.d.ts +10 -0
  188. package/dist/types/src/kittycorn.d.ts.map +1 -0
  189. package/dist/types/src/swapRouter.d.ts +124 -0
  190. package/dist/types/src/swapRouter.d.ts.map +1 -0
  191. package/dist/types/src/types/encodeSwaps.d.ts +198 -0
  192. package/dist/types/src/types/encodeSwaps.d.ts.map +1 -0
  193. package/dist/types/src/utils/commandParser.d.ts +37 -0
  194. package/dist/types/src/utils/commandParser.d.ts.map +1 -0
  195. package/dist/types/src/utils/computeEncodeSwapsAmounts.d.ts +9 -0
  196. package/dist/types/src/utils/computeEncodeSwapsAmounts.d.ts.map +1 -0
  197. package/dist/types/src/utils/constants.d.ts +47 -0
  198. package/dist/types/src/utils/constants.d.ts.map +1 -0
  199. package/dist/types/src/utils/directTransfers.d.ts +16 -0
  200. package/dist/types/src/utils/directTransfers.d.ts.map +1 -0
  201. package/dist/types/src/utils/eip712.d.ts +18 -0
  202. package/dist/types/src/utils/eip712.d.ts.map +1 -0
  203. package/dist/types/src/utils/encodeSwapStep.d.ts +5 -0
  204. package/dist/types/src/utils/encodeSwapStep.d.ts.map +1 -0
  205. package/dist/types/src/utils/encodeV4Action.d.ts +8 -0
  206. package/dist/types/src/utils/encodeV4Action.d.ts.map +1 -0
  207. package/dist/types/src/utils/getCurrencyAddress.d.ts +3 -0
  208. package/dist/types/src/utils/getCurrencyAddress.d.ts.map +1 -0
  209. package/dist/types/src/utils/inputTokens.d.ts +24 -0
  210. package/dist/types/src/utils/inputTokens.d.ts.map +1 -0
  211. package/dist/types/src/utils/normalizeEncodeSwapsSpec.d.ts +7 -0
  212. package/dist/types/src/utils/normalizeEncodeSwapsSpec.d.ts.map +1 -0
  213. package/dist/types/src/utils/numbers.d.ts +8 -0
  214. package/dist/types/src/utils/numbers.d.ts.map +1 -0
  215. package/dist/types/src/utils/pathCurrency.d.ts +4 -0
  216. package/dist/types/src/utils/pathCurrency.d.ts.map +1 -0
  217. package/dist/types/src/utils/portionFees.d.ts +15 -0
  218. package/dist/types/src/utils/portionFees.d.ts.map +1 -0
  219. package/dist/types/src/utils/routerBalanceSteps.d.ts +32 -0
  220. package/dist/types/src/utils/routerBalanceSteps.d.ts.map +1 -0
  221. package/dist/types/src/utils/routerCommands.d.ts +78 -0
  222. package/dist/types/src/utils/routerCommands.d.ts.map +1 -0
  223. package/dist/types/src/utils/routerTradeAdapter.d.ts +74 -0
  224. package/dist/types/src/utils/routerTradeAdapter.d.ts.map +1 -0
  225. package/dist/types/src/utils/toV4URVersion.d.ts +4 -0
  226. package/dist/types/src/utils/toV4URVersion.d.ts.map +1 -0
  227. package/dist/types/src/utils/validateEncodeSwaps.d.ts +3 -0
  228. package/dist/types/src/utils/validateEncodeSwaps.d.ts.map +1 -0
  229. package/package.json +33 -52
  230. package/dist/entities/actions/uniswap.d.ts +0 -30
  231. package/dist/index.d.ts +0 -10
  232. package/dist/index.js +0 -8
  233. package/dist/swapRouter.d.ts +0 -37
  234. package/dist/test/forge/writeInterop.d.ts +0 -2
  235. package/dist/test/utils/addresses.d.ts +0 -5
  236. package/dist/test/utils/hexToDecimalString.d.ts +0 -2
  237. package/dist/test/utils/permit2.d.ts +0 -7
  238. package/dist/test/utils/uniswapData.d.ts +0 -25
  239. package/dist/universal-router-sdk.cjs.development.js +0 -1500
  240. package/dist/universal-router-sdk.cjs.development.js.map +0 -1
  241. package/dist/universal-router-sdk.cjs.production.min.js +0 -2
  242. package/dist/universal-router-sdk.cjs.production.min.js.map +0 -1
  243. package/dist/universal-router-sdk.esm.js +0 -1493
  244. package/dist/universal-router-sdk.esm.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/utils/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { BigNumber } from '@ethersproject/bignumber';
2
+ import { NormalizedSwapSpecification, SwapStep } from '../types/encodeSwaps';
3
+ export type UserPaidPull = {
4
+ token: string | undefined;
5
+ maxAmount: BigNumber;
6
+ };
7
+ export declare function getV3HopCount(path: string): number | undefined;
8
+ export declare function v3PathFirstToken(path: string): string | undefined;
9
+ export declare function v3PathLastToken(path: string): string | undefined;
10
+ export declare function isSettlementSweepRedundant(spec: NormalizedSwapSpecification, swapSteps: SwapStep[], sweepFloor: BigNumber): boolean;
11
+ export declare function hasUserPaidFlag(step: SwapStep): boolean;
12
+ export declare function stepUserPaidPulls(step: SwapStep): UserPaidPull[];
13
+ export declare function sumUserPaidMax(steps: SwapStep[]): BigNumber;
14
+ export declare function sumDirectOutputMin(steps: SwapStep[], recipient: string, outputTokenAddress: string): BigNumber;
15
+ export declare function directTransferSweepFloor(spec: NormalizedSwapSpecification, netMin: BigNumber, swapSteps: SwapStep[], outputTokenAddress: string): BigNumber;
@@ -0,0 +1,381 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.directTransferSweepFloor = exports.sumDirectOutputMin = exports.sumUserPaidMax = exports.stepUserPaidPulls = exports.hasUserPaidFlag = exports.isSettlementSweepRedundant = exports.v3PathLastToken = exports.v3PathFirstToken = exports.getV3HopCount = void 0;
4
+ const bignumber_1 = require("@ethersproject/bignumber");
5
+ const sdk_core_1 = require("@kittycorn-labs/sdk-core");
6
+ const constants_1 = require("./constants");
7
+ const getCurrencyAddress_1 = require("./getCurrencyAddress");
8
+ const normalizeEncodeSwapsSpec_1 = require("./normalizeEncodeSwapsSpec");
9
+ // V3 path: 20-byte address + N × (3-byte fee + 20-byte address); minimum is 43 bytes (single hop, N=1)
10
+ // Returns N or undefined if malformed
11
+ function getV3HopCount(path) {
12
+ if (!path.startsWith('0x'))
13
+ return undefined;
14
+ const byteLength = (path.length - 2) / 2;
15
+ if (byteLength < 43)
16
+ return undefined;
17
+ const variableSegmentLength = byteLength - 20;
18
+ if (variableSegmentLength < 23 || variableSegmentLength % 23 !== 0)
19
+ return undefined;
20
+ return variableSegmentLength / 23;
21
+ }
22
+ exports.getV3HopCount = getV3HopCount;
23
+ function v3PathTokens(path) {
24
+ const hops = getV3HopCount(path);
25
+ if (hops === undefined)
26
+ return undefined;
27
+ const tokens = [];
28
+ for (let i = 0; i <= hops; i++) {
29
+ const start = 2 + i * 46;
30
+ tokens.push('0x' + path.slice(start, start + 40));
31
+ }
32
+ return tokens;
33
+ }
34
+ function v3PathFirstToken(path) {
35
+ var _a;
36
+ return (_a = v3PathTokens(path)) === null || _a === void 0 ? void 0 : _a[0];
37
+ }
38
+ exports.v3PathFirstToken = v3PathFirstToken;
39
+ function v3PathLastToken(path) {
40
+ const tokens = v3PathTokens(path);
41
+ return tokens === null || tokens === void 0 ? void 0 : tokens[tokens.length - 1];
42
+ }
43
+ exports.v3PathLastToken = v3PathLastToken;
44
+ function isSettlementSweepRedundant(spec, swapSteps, sweepFloor) {
45
+ var _a;
46
+ if (spec.omitRedundantSettlementSweep !== true ||
47
+ spec.allowDirectTransfers !== true ||
48
+ spec.tradeType !== sdk_core_1.TradeType.EXACT_INPUT ||
49
+ (0, normalizeEncodeSwapsSpec_1.toFeeList)(spec.fee).length !== 0 ||
50
+ spec.routerBalanceInput !== undefined ||
51
+ !sweepFloor.isZero() ||
52
+ spec.nativeErc20Input ||
53
+ spec.routing.inputToken.wrapped.equals(spec.routing.outputToken.wrapped)) {
54
+ return false;
55
+ }
56
+ const outputToken = spec.routing.outputToken;
57
+ const chainId = outputToken.chainId;
58
+ if (!(chainId in constants_1.CHAIN_CONFIGS) || constants_1.CHAIN_CONFIGS[chainId].nativeErc20BalanceAlias)
59
+ return false;
60
+ const settlementToken = (0, getCurrencyAddress_1.getCurrencyAddress)(outputToken).toLowerCase();
61
+ const recipient = spec.recipient.toLowerCase();
62
+ if (recipient === constants_1.ROUTER_AS_RECIPIENT)
63
+ return false;
64
+ // A native SWEEP to the router reverts, so keeping it avoids leaving ETH on the router.
65
+ try {
66
+ if ((0, constants_1.UNIVERSAL_ROUTER_ADDRESS)(spec.urVersion, chainId).toLowerCase() === recipient)
67
+ return false;
68
+ }
69
+ catch (_b) {
70
+ return false;
71
+ }
72
+ for (const step of swapSteps) {
73
+ switch (step.type) {
74
+ case 'V2_SWAP_EXACT_IN':
75
+ case 'V2_SWAP_EXACT_OUT': {
76
+ const tokens = step.path.map((token) => token.toLowerCase());
77
+ if (tokens.length === 0)
78
+ return false;
79
+ const outputIndex = tokens.length - 1;
80
+ if (tokens.some((token, index) => index !== outputIndex && token === settlementToken))
81
+ return false;
82
+ if (tokens[outputIndex] === settlementToken && step.recipient.toLowerCase() !== recipient)
83
+ return false;
84
+ break;
85
+ }
86
+ case 'V3_SWAP_EXACT_IN':
87
+ case 'V3_SWAP_EXACT_OUT': {
88
+ const tokens = (_a = v3PathTokens(step.path)) === null || _a === void 0 ? void 0 : _a.map((token) => token.toLowerCase());
89
+ if (!tokens)
90
+ return false;
91
+ const outputIndex = step.type === 'V3_SWAP_EXACT_IN' ? tokens.length - 1 : 0;
92
+ if (tokens.some((token, index) => index !== outputIndex && token === settlementToken))
93
+ return false;
94
+ if (tokens[outputIndex] === settlementToken && step.recipient.toLowerCase() !== recipient)
95
+ return false;
96
+ break;
97
+ }
98
+ case 'WRAP_ETH':
99
+ try {
100
+ const wethAddress = (0, constants_1.WETH_ADDRESS)(chainId);
101
+ if (!outputToken.isNative && wethAddress.toLowerCase() === settlementToken)
102
+ return false;
103
+ }
104
+ catch (_c) {
105
+ return false;
106
+ }
107
+ break;
108
+ case 'UNWRAP_WETH':
109
+ if (outputToken.isNative && step.recipient.toLowerCase() !== recipient)
110
+ return false;
111
+ break;
112
+ case 'V4_SWAP':
113
+ for (const action of step.v4Actions) {
114
+ switch (action.action) {
115
+ case 'SWAP_EXACT_IN_SINGLE':
116
+ case 'SWAP_EXACT_OUT_SINGLE':
117
+ if (action.poolKey.hooks.toLowerCase() !== constants_1.ZERO_ADDRESS)
118
+ return false;
119
+ break;
120
+ case 'SWAP_EXACT_IN':
121
+ case 'SWAP_EXACT_OUT':
122
+ if (action.path.some((hop) => hop.hooks.toLowerCase() !== constants_1.ZERO_ADDRESS))
123
+ return false;
124
+ break;
125
+ case 'TAKE':
126
+ case 'TAKE_PORTION':
127
+ if (action.currency.toLowerCase() === settlementToken && action.recipient.toLowerCase() !== recipient) {
128
+ return false;
129
+ }
130
+ break;
131
+ case 'TAKE_ALL':
132
+ if (action.currency.toLowerCase() === settlementToken && recipient !== constants_1.SENDER_AS_RECIPIENT)
133
+ return false;
134
+ break;
135
+ case 'SETTLE':
136
+ case 'SETTLE_ALL':
137
+ break;
138
+ default:
139
+ return false;
140
+ }
141
+ }
142
+ break;
143
+ default:
144
+ return false;
145
+ }
146
+ }
147
+ return true;
148
+ }
149
+ exports.isSettlementSweepRedundant = isSettlementSweepRedundant;
150
+ // SETTLE_ALL / TAKE_ALL are intrinsically direct (no flag on-chain) and are gated separately
151
+ function hasUserPaidFlag(step) {
152
+ switch (step.type) {
153
+ case 'V2_SWAP_EXACT_IN':
154
+ case 'V2_SWAP_EXACT_OUT':
155
+ case 'V3_SWAP_EXACT_IN':
156
+ case 'V3_SWAP_EXACT_OUT':
157
+ return step.payerIsUser === true;
158
+ case 'V4_SWAP':
159
+ return step.v4Actions.some((a) => a.action === 'SETTLE' && a.payerIsUser === true);
160
+ default:
161
+ return false;
162
+ }
163
+ }
164
+ exports.hasUserPaidFlag = hasUserPaidFlag;
165
+ function v4UserPaidPulls(action) {
166
+ switch (action.action) {
167
+ case 'SETTLE':
168
+ return action.payerIsUser === true ? [{ token: action.currency, maxAmount: bignumber_1.BigNumber.from(action.amount) }] : [];
169
+ case 'SETTLE_ALL':
170
+ // SETTLE_ALL always settles from msgSender (the user), bounded on-chain by maxAmount
171
+ return [{ token: action.currency, maxAmount: bignumber_1.BigNumber.from(action.maxAmount) }];
172
+ default:
173
+ return [];
174
+ }
175
+ }
176
+ // contract-enforced maxima: exact-in pulls exactly amountIn; exact-out reverts above amountInMax
177
+ function stepUserPaidPulls(step) {
178
+ switch (step.type) {
179
+ case 'V2_SWAP_EXACT_IN':
180
+ return step.payerIsUser === true ? [{ token: step.path[0], maxAmount: bignumber_1.BigNumber.from(step.amountIn) }] : [];
181
+ case 'V2_SWAP_EXACT_OUT':
182
+ return step.payerIsUser === true ? [{ token: step.path[0], maxAmount: bignumber_1.BigNumber.from(step.amountInMax) }] : [];
183
+ case 'V3_SWAP_EXACT_IN':
184
+ return step.payerIsUser === true
185
+ ? [{ token: v3PathFirstToken(step.path), maxAmount: bignumber_1.BigNumber.from(step.amountIn) }]
186
+ : [];
187
+ case 'V3_SWAP_EXACT_OUT':
188
+ // exact-out paths are encoded output-first, so the input token is the path tail
189
+ return step.payerIsUser === true
190
+ ? [{ token: v3PathLastToken(step.path), maxAmount: bignumber_1.BigNumber.from(step.amountInMax) }]
191
+ : [];
192
+ case 'V4_SWAP':
193
+ return step.v4Actions.flatMap(v4UserPaidPulls);
194
+ default:
195
+ return [];
196
+ }
197
+ }
198
+ exports.stepUserPaidPulls = stepUserPaidPulls;
199
+ // token-agnostic by design: validation binds every pull to the input token before this sum is
200
+ // used, so off-token pulls are rejected rather than filtered (unlike output credits below)
201
+ function sumUserPaidMax(steps) {
202
+ return steps.flatMap(stepUserPaidPulls).reduce((total, pull) => total.add(pull.maxAmount), bignumber_1.BigNumber.from(0));
203
+ }
204
+ exports.sumUserPaidMax = sumUserPaidMax;
205
+ // input/output currencies of a v4 swap action's delta within its command's lock
206
+ function v4SwapCurrencies(action) {
207
+ switch (action.action) {
208
+ case 'SWAP_EXACT_IN':
209
+ return action.path.length > 0
210
+ ? { input: action.currencyIn, output: action.path[action.path.length - 1].intermediateCurrency }
211
+ : undefined;
212
+ case 'SWAP_EXACT_OUT':
213
+ // exact-out paths walk from the input side, so the first hop names the input currency
214
+ return action.path.length > 0
215
+ ? { input: action.path[0].intermediateCurrency, output: action.currencyOut }
216
+ : undefined;
217
+ case 'SWAP_EXACT_IN_SINGLE':
218
+ case 'SWAP_EXACT_OUT_SINGLE':
219
+ return action.zeroForOne
220
+ ? { input: action.poolKey.currency0, output: action.poolKey.currency1 }
221
+ : { input: action.poolKey.currency1, output: action.poolKey.currency0 };
222
+ default:
223
+ return undefined;
224
+ }
225
+ }
226
+ // credits exact-in swap minimums that a single OPEN_DELTA take forwards to the recipient.
227
+ // sound because the v4 ledger must zero for the command to succeed: when a currency's only
228
+ // take is one OPEN_DELTA take to the recipient and nothing else in the block can consume that
229
+ // currency, any successful transaction paid the recipient everything the block's swaps produced
230
+ // of it — contract-enforced to be at least the exact-in swaps' summed amountOutMinimums
231
+ // (order-independent: an early take strands later credit and reverts the lock)
232
+ function v4OpenDeltaTakeCredits(actions, recipient) {
233
+ var _a, _b, _c;
234
+ const swapMins = new Map();
235
+ const takeCounts = new Map();
236
+ const soleOpenDeltaToRecipient = new Map();
237
+ const disqualified = new Set();
238
+ for (const action of actions) {
239
+ switch (action.action) {
240
+ case 'SWAP_EXACT_IN':
241
+ case 'SWAP_EXACT_OUT':
242
+ case 'SWAP_EXACT_IN_SINGLE':
243
+ case 'SWAP_EXACT_OUT_SINGLE': {
244
+ const currencies = v4SwapCurrencies(action);
245
+ if (currencies === undefined)
246
+ return []; // unparseable swap: cannot attribute deltas, credit nothing
247
+ disqualified.add(currencies.input.toLowerCase()); // the swap consumes this currency's delta
248
+ // only exact-in minimums are creditable: the action enforces them (V4TooLittleReceived).
249
+ // exact-out amounts are NOT asserted by the deployed v4 router — a price-limit partial
250
+ // fill succeeds with less — so exact-out swaps contribute zero (their actual output only
251
+ // adds on top of the credited exact-in minimums, keeping the credit a valid lower bound)
252
+ if (action.action === 'SWAP_EXACT_IN' || action.action === 'SWAP_EXACT_IN_SINGLE') {
253
+ const output = currencies.output.toLowerCase();
254
+ swapMins.set(output, ((_a = swapMins.get(output)) !== null && _a !== void 0 ? _a : bignumber_1.BigNumber.from(0)).add(bignumber_1.BigNumber.from(action.amountOutMinimum)));
255
+ }
256
+ break;
257
+ }
258
+ case 'SETTLE':
259
+ case 'SETTLE_ALL':
260
+ disqualified.add(action.currency.toLowerCase());
261
+ break;
262
+ case 'TAKE': {
263
+ const currency = action.currency.toLowerCase();
264
+ takeCounts.set(currency, ((_b = takeCounts.get(currency)) !== null && _b !== void 0 ? _b : 0) + 1);
265
+ soleOpenDeltaToRecipient.set(currency, bignumber_1.BigNumber.from(action.amount).isZero() && action.recipient.toLowerCase() === recipient.toLowerCase());
266
+ break;
267
+ }
268
+ case 'TAKE_ALL':
269
+ case 'TAKE_PORTION': {
270
+ const currency = action.currency.toLowerCase();
271
+ takeCounts.set(currency, ((_c = takeCounts.get(currency)) !== null && _c !== void 0 ? _c : 0) + 1);
272
+ soleOpenDeltaToRecipient.set(currency, false);
273
+ break;
274
+ }
275
+ default:
276
+ break;
277
+ }
278
+ }
279
+ const credits = [];
280
+ for (const [currency, min] of swapMins) {
281
+ if (takeCounts.get(currency) === 1 && soleOpenDeltaToRecipient.get(currency) && !disqualified.has(currency)) {
282
+ credits.push({ token: currency, minAmount: min });
283
+ }
284
+ }
285
+ return credits;
286
+ }
287
+ function v4DirectOutputCredits(action, recipient) {
288
+ switch (action.action) {
289
+ case 'TAKE': {
290
+ if (action.recipient.toLowerCase() !== recipient.toLowerCase())
291
+ return [];
292
+ const amount = bignumber_1.BigNumber.from(action.amount);
293
+ // OPEN_DELTA (0) / CONTRACT_BALANCE takes are runtime-sized: deliverable, but guarantee nothing
294
+ if (amount.lte(0) || amount.gte(constants_1.CONTRACT_BALANCE))
295
+ return [];
296
+ return [{ token: action.currency, minAmount: amount }];
297
+ }
298
+ case 'TAKE_ALL':
299
+ // pays msgSender on-chain: counts only when the spec recipient IS the sender sentinel
300
+ return recipient === constants_1.SENDER_AS_RECIPIENT
301
+ ? [{ token: action.currency, minAmount: bignumber_1.BigNumber.from(action.minAmount) }]
302
+ : [];
303
+ default:
304
+ return [];
305
+ }
306
+ }
307
+ // contract-guaranteed amounts a step delivers directly to `recipient`
308
+ function stepDirectOutputCredits(step, recipient) {
309
+ const isDirect = 'recipient' in step && step.recipient.toLowerCase() === recipient.toLowerCase();
310
+ switch (step.type) {
311
+ case 'V2_SWAP_EXACT_IN':
312
+ return isDirect ? [{ token: step.path[step.path.length - 1], minAmount: bignumber_1.BigNumber.from(step.amountOutMin) }] : [];
313
+ case 'V2_SWAP_EXACT_OUT':
314
+ // not creditable: v2SwapExactOutput only bounds amountIn (<= amountInMaximum) and never asserts
315
+ // amountOut was produced — unlike V3 exact-out (V3InvalidAmountOut) or v4 exact-out (concrete TAKE /
316
+ // CurrencyNotSettled). So a fee-on-transfer input/intermediate makes the leg produce less than
317
+ // amountOut and still succeed; like v4 OPEN_DELTA exact-out, contribute zero.
318
+ return [];
319
+ case 'V3_SWAP_EXACT_IN':
320
+ return isDirect ? [{ token: v3PathLastToken(step.path), minAmount: bignumber_1.BigNumber.from(step.amountOutMin) }] : [];
321
+ case 'V3_SWAP_EXACT_OUT':
322
+ // exact-out paths are encoded output-first, so the output token is the path head
323
+ return isDirect ? [{ token: v3PathFirstToken(step.path), minAmount: bignumber_1.BigNumber.from(step.amountOut) }] : [];
324
+ case 'UNWRAP_WETH':
325
+ return isDirect ? [{ token: constants_1.ETH_ADDRESS, minAmount: bignumber_1.BigNumber.from(step.amountMin) }] : [];
326
+ case 'V4_SWAP':
327
+ // per-action concrete credits and the block-level OPEN_DELTA rule are disjoint:
328
+ // an OPEN_DELTA take never produces a per-action credit
329
+ return [
330
+ ...step.v4Actions.flatMap((action) => v4DirectOutputCredits(action, recipient)),
331
+ ...v4OpenDeltaTakeCredits(step.v4Actions, recipient),
332
+ ];
333
+ default:
334
+ return [];
335
+ }
336
+ }
337
+ // Direct-output coverage in the output token: the summed contract-enforced minimum delivered straight to
338
+ // the recipient, and the number of coverage-bearing legs it came from. Summed per-leg floors can trail the
339
+ // trade-level floor by up to one wei each, so the caller uses `legs` to size how much rounding to tolerate;
340
+ // only legs carrying a nonzero minimum count — a zero-min leg has no flooring error to forgive, so it must
341
+ // not pad the tolerance.
342
+ function directOutputCoverage(steps, recipient, outputTokenAddress) {
343
+ const target = outputTokenAddress.toLowerCase();
344
+ const credits = steps
345
+ .flatMap((step) => stepDirectOutputCredits(step, recipient))
346
+ .filter((credit) => credit.token !== undefined && credit.token.toLowerCase() === target);
347
+ return {
348
+ min: credits.reduce((total, credit) => total.add(credit.minAmount), bignumber_1.BigNumber.from(0)),
349
+ legs: credits.filter((credit) => credit.minAmount.gt(0)).length,
350
+ };
351
+ }
352
+ function sumDirectOutputMin(steps, recipient, outputTokenAddress) {
353
+ return directOutputCoverage(steps, recipient, outputTokenAddress).min;
354
+ }
355
+ exports.sumDirectOutputMin = sumDirectOutputMin;
356
+ // The final SWEEP floor for a direct-transfer plan: netMin minus what the direct legs already guarantee to
357
+ // the recipient. Direct legs pay straight from the pools, so their credited minimums can sum a few wei
358
+ // below netMin — from independent integer flooring, and from routers that floor slippage in f64 — with no
359
+ // custody balance to cover the gap. A small tolerance forgives that sub-economic rounding so a fully
360
+ // covered direct plan doesn't revert; a larger, real coverage gap still enforces the full floor.
361
+ function directTransferSweepFloor(spec, netMin, swapSteps, outputTokenAddress) {
362
+ const { min: directOutputMin, legs } = directOutputCoverage(swapSteps, spec.recipient, outputTokenAddress);
363
+ const shortfall = netMin.sub(directOutputMin);
364
+ // flexibility tolerance: min(0.5bps of netMin, 1% of the slippage the user set). Headroom for a router's
365
+ // per-leg slippage math; scales to 0 as slippage -> 0 (and is 0 for exact-output, which has no
366
+ // output-side slippage), so an exact-price trade stays exact.
367
+ const slippageNumerator = bignumber_1.BigNumber.from(spec.slippageTolerance.numerator.toString());
368
+ const slippageDenominator = bignumber_1.BigNumber.from(spec.slippageTolerance.denominator.toString());
369
+ const outputSlippage = spec.tradeType === sdk_core_1.TradeType.EXACT_INPUT
370
+ ? bignumber_1.BigNumber.from(spec.routing.quote.quotient.toString()).mul(slippageNumerator).div(slippageDenominator)
371
+ : bignumber_1.BigNumber.from(0);
372
+ const halfBps = netMin.div(20000);
373
+ const onePercentOfSlippage = outputSlippage.div(100);
374
+ const flexibilityTolerance = halfBps.lt(onePercentOfSlippage) ? halfBps : onePercentOfSlippage;
375
+ // rounding tolerance: 2 wei per direct leg — inherent integer per-leg flooring, always allowed.
376
+ const roundingTolerance = bignumber_1.BigNumber.from(legs * 2);
377
+ const toleratedShortfall = flexibilityTolerance.gt(roundingTolerance) ? flexibilityTolerance : roundingTolerance;
378
+ return shortfall.gt(toleratedShortfall) ? shortfall : bignumber_1.BigNumber.from(0);
379
+ }
380
+ exports.directTransferSweepFloor = directTransferSweepFloor;
381
+ //# sourceMappingURL=directTransfers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directTransfers.js","sourceRoot":"","sources":["../../../../src/utils/directTransfers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer';
2
+ export declare const EIP712_DOMAIN_NAME = "UniversalRouter";
3
+ export declare const EIP712_DOMAIN_VERSION = "2";
4
+ export declare const EXECUTE_SIGNED_TYPES: Record<string, TypedDataField[]>;
5
+ /**
6
+ * Generate EIP712 domain for Universal Router
7
+ */
8
+ export declare function getUniversalRouterDomain(chainId: number, verifyingContract: string): TypedDataDomain;
9
+ /**
10
+ * Generate a random nonce for signed execution
11
+ * Uses secureRandomBytes for secure randomness
12
+ */
13
+ export declare function generateNonce(): string;
14
+ /**
15
+ * Sentinel value to skip nonce checking (allows signature replay)
16
+ */
17
+ export declare const NONCE_SKIP_CHECK: string;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NONCE_SKIP_CHECK = exports.generateNonce = exports.getUniversalRouterDomain = exports.EXECUTE_SIGNED_TYPES = exports.EIP712_DOMAIN_VERSION = exports.EIP712_DOMAIN_NAME = void 0;
4
+ const bytes_1 = require("@ethersproject/bytes");
5
+ const random_1 = require("@ethersproject/random");
6
+ exports.EIP712_DOMAIN_NAME = 'UniversalRouter';
7
+ exports.EIP712_DOMAIN_VERSION = '2';
8
+ exports.EXECUTE_SIGNED_TYPES = {
9
+ ExecuteSigned: [
10
+ { name: 'commands', type: 'bytes' },
11
+ { name: 'inputs', type: 'bytes[]' },
12
+ { name: 'intent', type: 'bytes32' },
13
+ { name: 'data', type: 'bytes32' },
14
+ { name: 'sender', type: 'address' },
15
+ { name: 'nonce', type: 'bytes32' },
16
+ { name: 'deadline', type: 'uint256' },
17
+ ],
18
+ };
19
+ /**
20
+ * Generate EIP712 domain for Universal Router
21
+ */
22
+ function getUniversalRouterDomain(chainId, verifyingContract) {
23
+ return {
24
+ name: exports.EIP712_DOMAIN_NAME,
25
+ version: exports.EIP712_DOMAIN_VERSION,
26
+ chainId,
27
+ verifyingContract,
28
+ };
29
+ }
30
+ exports.getUniversalRouterDomain = getUniversalRouterDomain;
31
+ /**
32
+ * Generate a random nonce for signed execution
33
+ * Uses secureRandomBytes for secure randomness
34
+ */
35
+ function generateNonce() {
36
+ const randomBytes = (0, random_1.randomBytes)(32);
37
+ return (0, bytes_1.hexlify)(randomBytes);
38
+ }
39
+ exports.generateNonce = generateNonce;
40
+ /**
41
+ * Sentinel value to skip nonce checking (allows signature replay)
42
+ */
43
+ exports.NONCE_SKIP_CHECK = '0x' + 'f'.repeat(64); // bytes32(type(uint256).max)
44
+ //# sourceMappingURL=eip712.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip712.js","sourceRoot":"","sources":["../../../../src/utils/eip712.ts"],"names":[],"mappings":";;;AACA,gDAA8C;AAC9C,kDAAwE;AAE3D,QAAA,kBAAkB,GAAG,iBAAiB,CAAA;AACtC,QAAA,qBAAqB,GAAG,GAAG,CAAA;AAE3B,QAAA,oBAAoB,GAAqC;IACpE,aAAa,EAAE;QACb,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;QACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;KACtC;CACF,CAAA;AAED;;GAEG;AACH,SAAgB,wBAAwB,CAAC,OAAe,EAAE,iBAAyB;IACjF,OAAO;QACL,IAAI,EAAE,0BAAkB;QACxB,OAAO,EAAE,6BAAqB;QAC9B,OAAO;QACP,iBAAiB;KAClB,CAAA;AACH,CAAC;AAPD,4DAOC;AAED;;;GAGG;AACH,SAAgB,aAAa;IAC3B,MAAM,WAAW,GAAG,IAAA,oBAAiB,EAAC,EAAE,CAAC,CAAA;IACzC,OAAO,IAAA,eAAO,EAAC,WAAW,CAAC,CAAA;AAC7B,CAAC;AAHD,sCAGC;AAED;;GAEG;AACU,QAAA,gBAAgB,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAC,6BAA6B"}
@@ -0,0 +1,4 @@
1
+ import { UniversalRouterVersion } from './constants';
2
+ import { RoutePlanner } from './routerCommands';
3
+ import { SwapStep } from '../types/encodeSwaps';
4
+ export declare function encodeSwapStep(planner: RoutePlanner, step: SwapStep, urVersion?: UniversalRouterVersion): void;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encodeSwapStep = void 0;
4
+ const v4_sdk_1 = require("@kittycorn-labs/v4-sdk");
5
+ const constants_1 = require("./constants");
6
+ const routerCommands_1 = require("./routerCommands");
7
+ const encodeV4Action_1 = require("./encodeV4Action");
8
+ const toV4URVersion_1 = require("./toV4URVersion");
9
+ // payerIsUser defaults to false (router custody); validateEncodeSwaps gates when true is allowed
10
+ function encodeSwapStep(planner, step, urVersion) {
11
+ var _a, _b, _c, _d;
12
+ const useV2_1_1 = (0, constants_1.isAtLeastV2_1_1)(urVersion);
13
+ switch (step.type) {
14
+ case 'V2_SWAP_EXACT_IN': {
15
+ const params = [step.recipient, step.amountIn, step.amountOutMin, step.path, step.payerIsUser === true];
16
+ if (useV2_1_1)
17
+ params.push((_a = step.minHopPriceX36) !== null && _a !== void 0 ? _a : []);
18
+ planner.addCommand(routerCommands_1.CommandType.V2_SWAP_EXACT_IN, params, false, urVersion);
19
+ return;
20
+ }
21
+ case 'V2_SWAP_EXACT_OUT': {
22
+ const params = [step.recipient, step.amountOut, step.amountInMax, step.path, step.payerIsUser === true];
23
+ if (useV2_1_1)
24
+ params.push((_b = step.minHopPriceX36) !== null && _b !== void 0 ? _b : []);
25
+ planner.addCommand(routerCommands_1.CommandType.V2_SWAP_EXACT_OUT, params, false, urVersion);
26
+ return;
27
+ }
28
+ case 'V3_SWAP_EXACT_IN': {
29
+ const params = [step.recipient, step.amountIn, step.amountOutMin, step.path, step.payerIsUser === true];
30
+ if (useV2_1_1)
31
+ params.push((_c = step.minHopPriceX36) !== null && _c !== void 0 ? _c : []);
32
+ planner.addCommand(routerCommands_1.CommandType.V3_SWAP_EXACT_IN, params, false, urVersion);
33
+ return;
34
+ }
35
+ case 'V3_SWAP_EXACT_OUT': {
36
+ const params = [step.recipient, step.amountOut, step.amountInMax, step.path, step.payerIsUser === true];
37
+ if (useV2_1_1)
38
+ params.push((_d = step.minHopPriceX36) !== null && _d !== void 0 ? _d : []);
39
+ planner.addCommand(routerCommands_1.CommandType.V3_SWAP_EXACT_OUT, params, false, urVersion);
40
+ return;
41
+ }
42
+ case 'V4_SWAP': {
43
+ const v4Planner = new v4_sdk_1.V4Planner();
44
+ for (const v4Action of step.v4Actions) {
45
+ const encoded = (0, encodeV4Action_1.encodeV4Action)(v4Action, urVersion);
46
+ v4Planner.addAction(encoded.action, encoded.params, (0, toV4URVersion_1.toV4URVersion)(urVersion));
47
+ }
48
+ planner.addCommand(routerCommands_1.CommandType.V4_SWAP, [v4Planner.finalize()], false, urVersion);
49
+ return;
50
+ }
51
+ case 'WRAP_ETH':
52
+ planner.addCommand(routerCommands_1.CommandType.WRAP_ETH, [step.recipient, step.amount], false, urVersion);
53
+ return;
54
+ case 'UNWRAP_WETH':
55
+ planner.addCommand(routerCommands_1.CommandType.UNWRAP_WETH, [step.recipient, step.amountMin], false, urVersion);
56
+ return;
57
+ default:
58
+ throw new Error(`Unknown swap step type: ${step.type}`);
59
+ }
60
+ }
61
+ exports.encodeSwapStep = encodeSwapStep;
62
+ //# sourceMappingURL=encodeSwapStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encodeSwapStep.js","sourceRoot":"","sources":["../../../../src/utils/encodeSwapStep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Actions } from '@kittycorn-labs/v4-sdk';
2
+ import { UniversalRouterVersion } from './constants';
3
+ import { V4Action } from '../types/encodeSwaps';
4
+ export declare function encodeV4Action(v4Action: V4Action, urVersion?: UniversalRouterVersion): {
5
+ action: Actions;
6
+ params: any[];
7
+ };