@kittycorn-labs/v4-sdk 1.1.30 → 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 (197) hide show
  1. package/README.md +9 -0
  2. package/dist/{PositionManager.d.ts → cjs/src/PositionManager.d.ts} +169 -169
  3. package/dist/cjs/src/PositionManager.js +242 -0
  4. package/dist/cjs/src/PositionManager.js.map +1 -0
  5. package/dist/cjs/src/abis/IMulticall.json +23 -0
  6. package/dist/{actionConstants.d.ts → cjs/src/actionConstants.d.ts} +1 -1
  7. package/dist/cjs/src/actionConstants.js +6 -0
  8. package/dist/cjs/src/actionConstants.js.map +1 -0
  9. package/dist/{entities → cjs/src/entities}/index.d.ts +4 -4
  10. package/dist/cjs/src/entities/index.js +8 -0
  11. package/dist/cjs/src/entities/index.js.map +1 -0
  12. package/dist/{entities → cjs/src/entities}/pool.d.ts +103 -103
  13. package/dist/cjs/src/entities/pool.js +196 -0
  14. package/dist/cjs/src/entities/pool.js.map +1 -0
  15. package/dist/{entities → cjs/src/entities}/position.d.ts +144 -144
  16. package/dist/cjs/src/entities/position.js +273 -0
  17. package/dist/cjs/src/entities/position.js.map +1 -0
  18. package/dist/{entities → cjs/src/entities}/route.d.ts +28 -28
  19. package/dist/cjs/src/entities/route.js +89 -0
  20. package/dist/cjs/src/entities/route.js.map +1 -0
  21. package/dist/{entities → cjs/src/entities}/trade.d.ts +220 -220
  22. package/dist/cjs/src/entities/trade.js +441 -0
  23. package/dist/cjs/src/entities/trade.js.map +1 -0
  24. package/dist/{index.d.ts → cjs/src/index.d.ts} +4 -4
  25. package/dist/cjs/src/index.js +8 -0
  26. package/dist/cjs/src/index.js.map +1 -0
  27. package/dist/{internalConstants.d.ts → cjs/src/internalConstants.d.ts} +46 -46
  28. package/dist/cjs/src/internalConstants.js +69 -0
  29. package/dist/cjs/src/internalConstants.js.map +1 -0
  30. package/dist/{multicall.d.ts → cjs/src/multicall.d.ts} +10 -10
  31. package/dist/cjs/src/multicall.js +26 -0
  32. package/dist/cjs/src/multicall.js.map +1 -0
  33. package/dist/cjs/src/tokenize.d.ts +17 -0
  34. package/dist/cjs/src/tokenize.js +42 -0
  35. package/dist/cjs/src/tokenize.js.map +1 -0
  36. package/dist/{utils → cjs/src/utils}/calldata.d.ts +20 -20
  37. package/dist/cjs/src/utils/calldata.js +20 -0
  38. package/dist/cjs/src/utils/calldata.js.map +1 -0
  39. package/dist/{utils → cjs/src/utils}/currencyMap.d.ts +2 -2
  40. package/dist/cjs/src/utils/currencyMap.js +15 -0
  41. package/dist/cjs/src/utils/currencyMap.js.map +1 -0
  42. package/dist/{utils → cjs/src/utils}/encodeRouteToPath.d.ts +10 -10
  43. package/dist/cjs/src/utils/encodeRouteToPath.js +26 -0
  44. package/dist/cjs/src/utils/encodeRouteToPath.js.map +1 -0
  45. package/dist/{utils → cjs/src/utils}/hook.d.ts +45 -45
  46. package/dist/cjs/src/utils/hook.js +97 -0
  47. package/dist/cjs/src/utils/hook.js.map +1 -0
  48. package/dist/{utils → cjs/src/utils}/index.d.ts +11 -11
  49. package/dist/cjs/src/utils/index.js +15 -0
  50. package/dist/cjs/src/utils/index.js.map +1 -0
  51. package/dist/{utils → cjs/src/utils}/pathCurrency.d.ts +4 -4
  52. package/dist/cjs/src/utils/pathCurrency.js +27 -0
  53. package/dist/cjs/src/utils/pathCurrency.js.map +1 -0
  54. package/dist/{utils → cjs/src/utils}/positionManagerAbi.d.ts +102 -102
  55. package/dist/cjs/src/utils/positionManagerAbi.js +1318 -0
  56. package/dist/cjs/src/utils/positionManagerAbi.js.map +1 -0
  57. package/dist/{utils → cjs/src/utils}/priceTickConversions.d.ts +20 -20
  58. package/dist/cjs/src/utils/priceTickConversions.js +55 -0
  59. package/dist/cjs/src/utils/priceTickConversions.js.map +1 -0
  60. package/dist/{utils → cjs/src/utils}/sortsBefore.d.ts +2 -2
  61. package/dist/cjs/src/utils/sortsBefore.js +12 -0
  62. package/dist/cjs/src/utils/sortsBefore.js.map +1 -0
  63. package/dist/{utils → cjs/src/utils}/v4BaseActionsParser.d.ts +49 -45
  64. package/dist/cjs/src/utils/v4BaseActionsParser.js +193 -0
  65. package/dist/cjs/src/utils/v4BaseActionsParser.js.map +1 -0
  66. package/dist/{utils → cjs/src/utils}/v4Planner.d.ts +71 -55
  67. package/dist/cjs/src/utils/v4Planner.js +267 -0
  68. package/dist/cjs/src/utils/v4Planner.js.map +1 -0
  69. package/dist/{utils → cjs/src/utils}/v4PositionPlanner.d.ts +13 -12
  70. package/dist/cjs/src/utils/v4PositionPlanner.js +61 -0
  71. package/dist/cjs/src/utils/v4PositionPlanner.js.map +1 -0
  72. package/dist/esm/package.json +1 -0
  73. package/dist/esm/src/PositionManager.d.ts +169 -0
  74. package/dist/esm/src/PositionManager.js +237 -0
  75. package/dist/esm/src/PositionManager.js.map +1 -0
  76. package/dist/esm/src/abis/IMulticall.json +23 -0
  77. package/dist/esm/src/actionConstants.d.ts +1 -0
  78. package/dist/esm/src/actionConstants.js +3 -0
  79. package/dist/esm/src/actionConstants.js.map +1 -0
  80. package/dist/esm/src/entities/index.d.ts +4 -0
  81. package/dist/esm/src/entities/index.js +5 -0
  82. package/dist/esm/src/entities/index.js.map +1 -0
  83. package/dist/esm/src/entities/pool.d.ts +103 -0
  84. package/dist/esm/src/entities/pool.js +191 -0
  85. package/dist/esm/src/entities/pool.js.map +1 -0
  86. package/dist/esm/src/entities/position.d.ts +144 -0
  87. package/dist/esm/src/entities/position.js +268 -0
  88. package/dist/esm/src/entities/position.js.map +1 -0
  89. package/dist/esm/src/entities/route.d.ts +28 -0
  90. package/dist/esm/src/entities/route.js +84 -0
  91. package/dist/esm/src/entities/route.js.map +1 -0
  92. package/dist/esm/src/entities/trade.d.ts +220 -0
  93. package/dist/esm/src/entities/trade.js +435 -0
  94. package/dist/esm/src/entities/trade.js.map +1 -0
  95. package/dist/esm/src/index.d.ts +4 -0
  96. package/dist/esm/src/index.js +5 -0
  97. package/dist/esm/src/index.js.map +1 -0
  98. package/dist/esm/src/internalConstants.d.ts +46 -0
  99. package/dist/esm/src/internalConstants.js +65 -0
  100. package/dist/esm/src/internalConstants.js.map +1 -0
  101. package/dist/esm/src/multicall.d.ts +10 -0
  102. package/dist/esm/src/multicall.js +21 -0
  103. package/dist/esm/src/multicall.js.map +1 -0
  104. package/dist/esm/src/tokenize.d.ts +17 -0
  105. package/dist/esm/src/tokenize.js +37 -0
  106. package/dist/esm/src/tokenize.js.map +1 -0
  107. package/dist/esm/src/utils/calldata.d.ts +20 -0
  108. package/dist/esm/src/utils/calldata.js +15 -0
  109. package/dist/esm/src/utils/calldata.js.map +1 -0
  110. package/dist/esm/src/utils/currencyMap.d.ts +2 -0
  111. package/dist/esm/src/utils/currencyMap.js +11 -0
  112. package/dist/esm/src/utils/currencyMap.js.map +1 -0
  113. package/dist/esm/src/utils/encodeRouteToPath.d.ts +10 -0
  114. package/dist/esm/src/utils/encodeRouteToPath.js +22 -0
  115. package/dist/esm/src/utils/encodeRouteToPath.js.map +1 -0
  116. package/dist/esm/src/utils/hook.d.ts +45 -0
  117. package/dist/esm/src/utils/hook.js +92 -0
  118. package/dist/esm/src/utils/hook.js.map +1 -0
  119. package/dist/esm/src/utils/index.d.ts +11 -0
  120. package/dist/esm/src/utils/index.js +12 -0
  121. package/dist/esm/src/utils/index.js.map +1 -0
  122. package/dist/esm/src/utils/pathCurrency.d.ts +4 -0
  123. package/dist/esm/src/utils/pathCurrency.js +22 -0
  124. package/dist/esm/src/utils/pathCurrency.js.map +1 -0
  125. package/dist/esm/src/utils/positionManagerAbi.d.ts +102 -0
  126. package/dist/esm/src/utils/positionManagerAbi.js +1315 -0
  127. package/dist/esm/src/utils/positionManagerAbi.js.map +1 -0
  128. package/dist/esm/src/utils/priceTickConversions.d.ts +20 -0
  129. package/dist/esm/src/utils/priceTickConversions.js +49 -0
  130. package/dist/esm/src/utils/priceTickConversions.js.map +1 -0
  131. package/dist/esm/src/utils/sortsBefore.d.ts +2 -0
  132. package/dist/esm/src/utils/sortsBefore.js +8 -0
  133. package/dist/esm/src/utils/sortsBefore.js.map +1 -0
  134. package/dist/esm/src/utils/v4BaseActionsParser.d.ts +49 -0
  135. package/dist/esm/src/utils/v4BaseActionsParser.js +189 -0
  136. package/dist/esm/src/utils/v4BaseActionsParser.js.map +1 -0
  137. package/dist/esm/src/utils/v4Planner.d.ts +71 -0
  138. package/dist/esm/src/utils/v4Planner.js +261 -0
  139. package/dist/esm/src/utils/v4Planner.js.map +1 -0
  140. package/dist/esm/src/utils/v4PositionPlanner.d.ts +13 -0
  141. package/dist/esm/src/utils/v4PositionPlanner.js +57 -0
  142. package/dist/esm/src/utils/v4PositionPlanner.js.map +1 -0
  143. package/dist/types/src/PositionManager.d.ts +170 -0
  144. package/dist/types/src/PositionManager.d.ts.map +1 -0
  145. package/dist/types/src/actionConstants.d.ts +2 -0
  146. package/dist/types/src/actionConstants.d.ts.map +1 -0
  147. package/dist/types/src/entities/index.d.ts +5 -0
  148. package/dist/types/src/entities/index.d.ts.map +1 -0
  149. package/dist/types/src/entities/pool.d.ts +104 -0
  150. package/dist/types/src/entities/pool.d.ts.map +1 -0
  151. package/dist/types/src/entities/position.d.ts +145 -0
  152. package/dist/types/src/entities/position.d.ts.map +1 -0
  153. package/dist/types/src/entities/route.d.ts +29 -0
  154. package/dist/types/src/entities/route.d.ts.map +1 -0
  155. package/dist/types/src/entities/trade.d.ts +221 -0
  156. package/dist/types/src/entities/trade.d.ts.map +1 -0
  157. package/dist/types/src/index.d.ts +5 -0
  158. package/dist/types/src/index.d.ts.map +1 -0
  159. package/dist/types/src/internalConstants.d.ts +47 -0
  160. package/dist/types/src/internalConstants.d.ts.map +1 -0
  161. package/dist/types/src/multicall.d.ts +11 -0
  162. package/dist/types/src/multicall.d.ts.map +1 -0
  163. package/dist/types/src/tokenize.d.ts +18 -0
  164. package/dist/types/src/tokenize.d.ts.map +1 -0
  165. package/dist/types/src/utils/calldata.d.ts +21 -0
  166. package/dist/types/src/utils/calldata.d.ts.map +1 -0
  167. package/dist/types/src/utils/currencyMap.d.ts +3 -0
  168. package/dist/types/src/utils/currencyMap.d.ts.map +1 -0
  169. package/dist/types/src/utils/encodeRouteToPath.d.ts +11 -0
  170. package/dist/types/src/utils/encodeRouteToPath.d.ts.map +1 -0
  171. package/dist/types/src/utils/hook.d.ts +46 -0
  172. package/dist/types/src/utils/hook.d.ts.map +1 -0
  173. package/dist/types/src/utils/index.d.ts +12 -0
  174. package/dist/types/src/utils/index.d.ts.map +1 -0
  175. package/dist/types/src/utils/pathCurrency.d.ts +5 -0
  176. package/dist/types/src/utils/pathCurrency.d.ts.map +1 -0
  177. package/dist/types/src/utils/positionManagerAbi.d.ts +103 -0
  178. package/dist/types/src/utils/positionManagerAbi.d.ts.map +1 -0
  179. package/dist/types/src/utils/priceTickConversions.d.ts +21 -0
  180. package/dist/types/src/utils/priceTickConversions.d.ts.map +1 -0
  181. package/dist/types/src/utils/sortsBefore.d.ts +3 -0
  182. package/dist/types/src/utils/sortsBefore.d.ts.map +1 -0
  183. package/dist/types/src/utils/v4BaseActionsParser.d.ts +50 -0
  184. package/dist/types/src/utils/v4BaseActionsParser.d.ts.map +1 -0
  185. package/dist/types/src/utils/v4Planner.d.ts +72 -0
  186. package/dist/types/src/utils/v4Planner.d.ts.map +1 -0
  187. package/dist/types/src/utils/v4PositionPlanner.d.ts +14 -0
  188. package/dist/types/src/utils/v4PositionPlanner.d.ts.map +1 -0
  189. package/package.json +28 -46
  190. package/dist/index.js +0 -8
  191. package/dist/tokenizeAddresses.d.ts +0 -25
  192. package/dist/v4-sdk.cjs.development.js +0 -3633
  193. package/dist/v4-sdk.cjs.development.js.map +0 -1
  194. package/dist/v4-sdk.cjs.production.min.js +0 -2
  195. package/dist/v4-sdk.cjs.production.min.js.map +0 -1
  196. package/dist/v4-sdk.esm.js +0 -3597
  197. package/dist/v4-sdk.esm.js.map +0 -1
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.V4Planner = exports.V4_SWAP_ACTIONS_V2_1_1 = exports.V4_BASE_ACTIONS_ABI_DEFINITION = exports.Subparser = exports.Actions = exports.isAtLeastV2_1_1 = exports.URVersion = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
6
+ const abi_1 = require("@ethersproject/abi");
7
+ const sdk_core_1 = require("@kittycorn-labs/sdk-core");
8
+ const internalConstants_1 = require("../internalConstants");
9
+ const encodeRouteToPath_1 = require("./encodeRouteToPath");
10
+ /**
11
+ * Actions
12
+ * @description Constants that define what action to perform
13
+ * Not all actions are supported yet.
14
+ * @enum {number}
15
+ */
16
+ /**
17
+ * UniversalRouter version
18
+ * @description Version of the UniversalRouter contract
19
+ * @enum {string}
20
+ */
21
+ var URVersion;
22
+ (function (URVersion) {
23
+ URVersion["V2_0"] = "2.0";
24
+ URVersion["V2_1_1"] = "2.1.1";
25
+ URVersion["V2_1_2"] = "2.1.2";
26
+ URVersion["V2_2_0"] = "2.2.0";
27
+ })(URVersion = exports.URVersion || (exports.URVersion = {}));
28
+ function isAtLeastV2_1_1(version) {
29
+ return !!version && version.localeCompare(URVersion.V2_1_1, undefined, { numeric: true }) >= 0;
30
+ }
31
+ exports.isAtLeastV2_1_1 = isAtLeastV2_1_1;
32
+ var Actions;
33
+ (function (Actions) {
34
+ // pool actions
35
+ // liquidity actions
36
+ Actions[Actions["INCREASE_LIQUIDITY"] = 0] = "INCREASE_LIQUIDITY";
37
+ Actions[Actions["DECREASE_LIQUIDITY"] = 1] = "DECREASE_LIQUIDITY";
38
+ Actions[Actions["MINT_POSITION"] = 2] = "MINT_POSITION";
39
+ Actions[Actions["BURN_POSITION"] = 3] = "BURN_POSITION";
40
+ // for fee on transfer tokens
41
+ // INCREASE_LIQUIDITY_FROM_DELTAS = 0x04,
42
+ // MINT_POSITION_FROM_DELTAS = 0x05,
43
+ // swapping
44
+ Actions[Actions["SWAP_EXACT_IN_SINGLE"] = 6] = "SWAP_EXACT_IN_SINGLE";
45
+ Actions[Actions["SWAP_EXACT_IN"] = 7] = "SWAP_EXACT_IN";
46
+ Actions[Actions["SWAP_EXACT_OUT_SINGLE"] = 8] = "SWAP_EXACT_OUT_SINGLE";
47
+ Actions[Actions["SWAP_EXACT_OUT"] = 9] = "SWAP_EXACT_OUT";
48
+ // closing deltas on the pool manager
49
+ // settling
50
+ Actions[Actions["SETTLE"] = 11] = "SETTLE";
51
+ Actions[Actions["SETTLE_ALL"] = 12] = "SETTLE_ALL";
52
+ Actions[Actions["SETTLE_PAIR"] = 13] = "SETTLE_PAIR";
53
+ // taking
54
+ Actions[Actions["TAKE"] = 14] = "TAKE";
55
+ Actions[Actions["TAKE_ALL"] = 15] = "TAKE_ALL";
56
+ Actions[Actions["TAKE_PORTION"] = 16] = "TAKE_PORTION";
57
+ Actions[Actions["TAKE_PAIR"] = 17] = "TAKE_PAIR";
58
+ Actions[Actions["CLOSE_CURRENCY"] = 18] = "CLOSE_CURRENCY";
59
+ // CLEAR_OR_TAKE = 0x13,
60
+ Actions[Actions["SWEEP"] = 20] = "SWEEP";
61
+ // for wrapping/unwrapping native
62
+ // WRAP = 0x15,
63
+ Actions[Actions["UNWRAP"] = 22] = "UNWRAP";
64
+ })(Actions = exports.Actions || (exports.Actions = {}));
65
+ var Subparser;
66
+ (function (Subparser) {
67
+ Subparser[Subparser["V4SwapExactInSingle"] = 0] = "V4SwapExactInSingle";
68
+ Subparser[Subparser["V4SwapExactIn"] = 1] = "V4SwapExactIn";
69
+ Subparser[Subparser["V4SwapExactOutSingle"] = 2] = "V4SwapExactOutSingle";
70
+ Subparser[Subparser["V4SwapExactOut"] = 3] = "V4SwapExactOut";
71
+ Subparser[Subparser["PoolKey"] = 4] = "PoolKey";
72
+ })(Subparser = exports.Subparser || (exports.Subparser = {}));
73
+ const POOL_KEY_STRUCT = '(address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks)';
74
+ const PATH_KEY_STRUCT = '(address intermediateCurrency,uint256 fee,int24 tickSpacing,address hooks,bytes hookData)';
75
+ // UR 2.0 swap structs (without minHopPriceX36)
76
+ const SWAP_EXACT_IN_SINGLE_STRUCT_V2_0 = '(' + POOL_KEY_STRUCT + ' poolKey,bool zeroForOne,uint128 amountIn,uint128 amountOutMinimum,bytes hookData)';
77
+ const SWAP_EXACT_IN_STRUCT_V2_0 = '(address currencyIn,' + PATH_KEY_STRUCT + '[] path,uint128 amountIn,uint128 amountOutMinimum)';
78
+ const SWAP_EXACT_OUT_SINGLE_STRUCT_V2_0 = '(' + POOL_KEY_STRUCT + ' poolKey,bool zeroForOne,uint128 amountOut,uint128 amountInMaximum,bytes hookData)';
79
+ const SWAP_EXACT_OUT_STRUCT_V2_0 = '(address currencyOut,' + PATH_KEY_STRUCT + '[] path,uint128 amountOut,uint128 amountInMaximum)';
80
+ // UR 2.1.1 swap structs (with minHopPriceX36)
81
+ const SWAP_EXACT_IN_SINGLE_STRUCT_V2_1_1 = '(' +
82
+ POOL_KEY_STRUCT +
83
+ ' poolKey,bool zeroForOne,uint128 amountIn,uint128 amountOutMinimum,uint256 minHopPriceX36,bytes hookData)';
84
+ const SWAP_EXACT_IN_STRUCT_V2_1_1 = '(address currencyIn,' +
85
+ PATH_KEY_STRUCT +
86
+ '[] path,uint256[] minHopPriceX36,uint128 amountIn,uint128 amountOutMinimum)';
87
+ const SWAP_EXACT_OUT_SINGLE_STRUCT_V2_1_1 = '(' +
88
+ POOL_KEY_STRUCT +
89
+ ' poolKey,bool zeroForOne,uint128 amountOut,uint128 amountInMaximum,uint256 minHopPriceX36,bytes hookData)';
90
+ const SWAP_EXACT_OUT_STRUCT_V2_1_1 = '(address currencyOut,' +
91
+ PATH_KEY_STRUCT +
92
+ '[] path,uint256[] minHopPriceX36,uint128 amountOut,uint128 amountInMaximum)';
93
+ // V4_BASE_ACTIONS_ABI_DEFINITION uses V2.0 structs (default, without minHopPriceX36)
94
+ const SWAP_EXACT_IN_SINGLE_STRUCT = SWAP_EXACT_IN_SINGLE_STRUCT_V2_0;
95
+ const SWAP_EXACT_IN_STRUCT = SWAP_EXACT_IN_STRUCT_V2_0;
96
+ const SWAP_EXACT_OUT_SINGLE_STRUCT = SWAP_EXACT_OUT_SINGLE_STRUCT_V2_0;
97
+ const SWAP_EXACT_OUT_STRUCT = SWAP_EXACT_OUT_STRUCT_V2_0;
98
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
99
+ exports.V4_BASE_ACTIONS_ABI_DEFINITION = {
100
+ // Liquidity commands
101
+ [Actions.INCREASE_LIQUIDITY]: [
102
+ { name: 'tokenId', type: 'uint256' },
103
+ { name: 'liquidity', type: 'uint256' },
104
+ { name: 'amount0Max', type: 'uint128' },
105
+ { name: 'amount1Max', type: 'uint128' },
106
+ { name: 'hookData', type: 'bytes' },
107
+ ],
108
+ [Actions.DECREASE_LIQUIDITY]: [
109
+ { name: 'tokenId', type: 'uint256' },
110
+ { name: 'liquidity', type: 'uint256' },
111
+ { name: 'amount0Min', type: 'uint128' },
112
+ { name: 'amount1Min', type: 'uint128' },
113
+ { name: 'hookData', type: 'bytes' },
114
+ ],
115
+ [Actions.MINT_POSITION]: [
116
+ { name: 'poolKey', type: POOL_KEY_STRUCT, subparser: Subparser.PoolKey },
117
+ { name: 'tickLower', type: 'int24' },
118
+ { name: 'tickUpper', type: 'int24' },
119
+ { name: 'liquidity', type: 'uint256' },
120
+ { name: 'amount0Max', type: 'uint128' },
121
+ { name: 'amount1Max', type: 'uint128' },
122
+ { name: 'owner', type: 'address' },
123
+ { name: 'hookData', type: 'bytes' },
124
+ ],
125
+ [Actions.BURN_POSITION]: [
126
+ { name: 'tokenId', type: 'uint256' },
127
+ { name: 'amount0Min', type: 'uint128' },
128
+ { name: 'amount1Min', type: 'uint128' },
129
+ { name: 'hookData', type: 'bytes' },
130
+ ],
131
+ // Swapping commands
132
+ [Actions.SWAP_EXACT_IN_SINGLE]: [
133
+ { name: 'swap', type: SWAP_EXACT_IN_SINGLE_STRUCT, subparser: Subparser.V4SwapExactInSingle },
134
+ ],
135
+ [Actions.SWAP_EXACT_IN]: [{ name: 'swap', type: SWAP_EXACT_IN_STRUCT, subparser: Subparser.V4SwapExactIn }],
136
+ [Actions.SWAP_EXACT_OUT_SINGLE]: [
137
+ { name: 'swap', type: SWAP_EXACT_OUT_SINGLE_STRUCT, subparser: Subparser.V4SwapExactOutSingle },
138
+ ],
139
+ [Actions.SWAP_EXACT_OUT]: [{ name: 'swap', type: SWAP_EXACT_OUT_STRUCT, subparser: Subparser.V4SwapExactOut }],
140
+ // Payments commands
141
+ [Actions.SETTLE]: [
142
+ { name: 'currency', type: 'address' },
143
+ { name: 'amount', type: 'uint256' },
144
+ { name: 'payerIsUser', type: 'bool' },
145
+ ],
146
+ [Actions.SETTLE_ALL]: [
147
+ { name: 'currency', type: 'address' },
148
+ { name: 'maxAmount', type: 'uint256' },
149
+ ],
150
+ [Actions.SETTLE_PAIR]: [
151
+ { name: 'currency0', type: 'address' },
152
+ { name: 'currency1', type: 'address' },
153
+ ],
154
+ [Actions.TAKE]: [
155
+ { name: 'currency', type: 'address' },
156
+ { name: 'recipient', type: 'address' },
157
+ { name: 'amount', type: 'uint256' },
158
+ ],
159
+ [Actions.TAKE_ALL]: [
160
+ { name: 'currency', type: 'address' },
161
+ { name: 'minAmount', type: 'uint256' },
162
+ ],
163
+ [Actions.TAKE_PORTION]: [
164
+ { name: 'currency', type: 'address' },
165
+ { name: 'recipient', type: 'address' },
166
+ { name: 'bips', type: 'uint256' },
167
+ ],
168
+ [Actions.TAKE_PAIR]: [
169
+ { name: 'currency0', type: 'address' },
170
+ { name: 'currency1', type: 'address' },
171
+ { name: 'recipient', type: 'address' },
172
+ ],
173
+ [Actions.CLOSE_CURRENCY]: [{ name: 'currency', type: 'address' }],
174
+ [Actions.SWEEP]: [
175
+ { name: 'currency', type: 'address' },
176
+ { name: 'recipient', type: 'address' },
177
+ ],
178
+ [Actions.UNWRAP]: [{ name: 'amount', type: 'uint256' }],
179
+ };
180
+ // UR 2.1.1 specific ABI definitions for swap actions (with minHopPriceX36)
181
+ exports.V4_SWAP_ACTIONS_V2_1_1 = {
182
+ [Actions.SWAP_EXACT_IN_SINGLE]: [
183
+ { name: 'swap', type: SWAP_EXACT_IN_SINGLE_STRUCT_V2_1_1, subparser: Subparser.V4SwapExactInSingle },
184
+ ],
185
+ [Actions.SWAP_EXACT_IN]: [{ name: 'swap', type: SWAP_EXACT_IN_STRUCT_V2_1_1, subparser: Subparser.V4SwapExactIn }],
186
+ [Actions.SWAP_EXACT_OUT_SINGLE]: [
187
+ { name: 'swap', type: SWAP_EXACT_OUT_SINGLE_STRUCT_V2_1_1, subparser: Subparser.V4SwapExactOutSingle },
188
+ ],
189
+ [Actions.SWAP_EXACT_OUT]: [{ name: 'swap', type: SWAP_EXACT_OUT_STRUCT_V2_1_1, subparser: Subparser.V4SwapExactOut }],
190
+ };
191
+ const FULL_DELTA_AMOUNT = 0;
192
+ class V4Planner {
193
+ constructor() {
194
+ this.actions = internalConstants_1.EMPTY_BYTES;
195
+ this.params = [];
196
+ }
197
+ addAction(type, parameters, urVersion = URVersion.V2_0) {
198
+ let command = createAction(type, parameters, urVersion);
199
+ this.params.push(command.encodedInput);
200
+ this.actions = this.actions.concat(command.action.toString(16).padStart(2, '0'));
201
+ return this;
202
+ }
203
+ addTrade(trade, slippageTolerance, minHopPriceX36, urVersion = URVersion.V2_0) {
204
+ const exactOutput = trade.tradeType === sdk_core_1.TradeType.EXACT_OUTPUT;
205
+ // exactInput we sometimes perform aggregated slippage checks, but not with exactOutput
206
+ if (exactOutput)
207
+ (0, tiny_invariant_1.default)(!!slippageTolerance, 'ExactOut requires slippageTolerance');
208
+ (0, tiny_invariant_1.default)(trade.swaps.length === 1, 'Only accepts Trades with 1 swap (must break swaps into individual trades)');
209
+ (0, tiny_invariant_1.default)(urVersion === URVersion.V2_0 || !(minHopPriceX36 === null || minHopPriceX36 === void 0 ? void 0 : minHopPriceX36.length) || minHopPriceX36.length === trade.route.pools.length, `minHopPriceX36 length (${minHopPriceX36 === null || minHopPriceX36 === void 0 ? void 0 : minHopPriceX36.length}) must equal route.pools.length (${trade.route.pools.length})`);
210
+ const actionType = exactOutput ? Actions.SWAP_EXACT_OUT : Actions.SWAP_EXACT_IN;
211
+ const currencyIn = currencyAddress(trade.route.pathInput);
212
+ const currencyOut = currencyAddress(trade.route.pathOutput);
213
+ const swapStruct = exactOutput
214
+ ? {
215
+ currencyOut,
216
+ path: (0, encodeRouteToPath_1.encodeRouteToPath)(trade.route, exactOutput),
217
+ ...(isAtLeastV2_1_1(urVersion) && { minHopPriceX36: minHopPriceX36 !== null && minHopPriceX36 !== void 0 ? minHopPriceX36 : [] }),
218
+ amountOut: trade.outputAmount.quotient.toString(),
219
+ amountInMaximum: trade.maximumAmountIn(slippageTolerance !== null && slippageTolerance !== void 0 ? slippageTolerance : new sdk_core_1.Percent(0)).quotient.toString(),
220
+ }
221
+ : {
222
+ currencyIn,
223
+ path: (0, encodeRouteToPath_1.encodeRouteToPath)(trade.route, exactOutput),
224
+ ...(isAtLeastV2_1_1(urVersion) && { minHopPriceX36: minHopPriceX36 !== null && minHopPriceX36 !== void 0 ? minHopPriceX36 : [] }),
225
+ amountIn: trade.inputAmount.quotient.toString(),
226
+ amountOutMinimum: slippageTolerance ? trade.minimumAmountOut(slippageTolerance).quotient.toString() : 0,
227
+ };
228
+ this.addSwapAction(actionType, [swapStruct], urVersion);
229
+ return this;
230
+ }
231
+ addSettle(currency, payerIsUser, amount) {
232
+ this.addAction(Actions.SETTLE, [currencyAddress(currency), amount !== null && amount !== void 0 ? amount : FULL_DELTA_AMOUNT, payerIsUser]);
233
+ return this;
234
+ }
235
+ addTake(currency, recipient, amount) {
236
+ const takeAmount = amount !== null && amount !== void 0 ? amount : FULL_DELTA_AMOUNT;
237
+ this.addAction(Actions.TAKE, [currencyAddress(currency), recipient, takeAmount]);
238
+ return this;
239
+ }
240
+ addUnwrap(amount) {
241
+ this.addAction(Actions.UNWRAP, [amount]);
242
+ return this;
243
+ }
244
+ finalize() {
245
+ return abi_1.defaultAbiCoder.encode(['bytes', 'bytes[]'], [this.actions, this.params]);
246
+ }
247
+ addSwapAction(type, parameters, urVersion) {
248
+ // Use V2.1.1 ABI (with minHopPriceX36) for V2.1.1, otherwise default to V2.0 ABI (without minHopPriceX36)
249
+ const abiDef = isAtLeastV2_1_1(urVersion) ? exports.V4_SWAP_ACTIONS_V2_1_1[type] : exports.V4_BASE_ACTIONS_ABI_DEFINITION[type];
250
+ const encodedInput = abi_1.defaultAbiCoder.encode(abiDef.map((v) => v.type), parameters);
251
+ this.params.push(encodedInput);
252
+ this.actions = this.actions.concat(type.toString(16).padStart(2, '0'));
253
+ return this;
254
+ }
255
+ }
256
+ exports.V4Planner = V4Planner;
257
+ function currencyAddress(currency) {
258
+ return currency.isNative ? internalConstants_1.ADDRESS_ZERO : currency.wrapped.address;
259
+ }
260
+ function createAction(action, parameters, urVersion = URVersion.V2_0) {
261
+ const abiDef = isAtLeastV2_1_1(urVersion) && action in exports.V4_SWAP_ACTIONS_V2_1_1
262
+ ? exports.V4_SWAP_ACTIONS_V2_1_1[action]
263
+ : exports.V4_BASE_ACTIONS_ABI_DEFINITION[action];
264
+ const encodedInput = abi_1.defaultAbiCoder.encode(abiDef.map((v) => v.type), parameters);
265
+ return { action, encodedInput };
266
+ }
267
+ //# sourceMappingURL=v4Planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v4Planner.js","sourceRoot":"","sources":["../../../../src/utils/v4Planner.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import { V4Planner } from './v4Planner';
2
- import { Pool } from '../entities';
3
- import { BigintIsh, Currency } from '@kittycorn-labs/sdk-core';
4
- export declare class V4PositionPlanner extends V4Planner {
5
- addMint(pool: Pool, tickLower: number, tickUpper: number, liquidity: BigintIsh, amount0Max: BigintIsh, amount1Max: BigintIsh, owner: string, hookData?: string): void;
6
- addIncrease(tokenId: BigintIsh, liquidity: BigintIsh, amount0Max: BigintIsh, amount1Max: BigintIsh, hookData?: string): void;
7
- addDecrease(tokenId: BigintIsh, liquidity: BigintIsh, amount0Min: BigintIsh, amount1Min: BigintIsh, hookData?: string): void;
8
- addBurn(tokenId: BigintIsh, amount0Min: BigintIsh, amount1Min: BigintIsh, hookData?: string): void;
9
- addSettlePair(currency0: Currency, currency1: Currency): void;
10
- addTakePair(currency0: Currency, currency1: Currency, recipient: string): void;
11
- addSweep(currency: Currency, to: string): void;
12
- }
1
+ import { V4Planner } from './v4Planner';
2
+ import { Pool } from '../entities';
3
+ import { BigintIsh, Currency } from '@kittycorn-labs/sdk-core';
4
+ export declare class V4PositionPlanner extends V4Planner {
5
+ addMint(pool: Pool, tickLower: number, tickUpper: number, liquidity: BigintIsh, amount0Max: BigintIsh, amount1Max: BigintIsh, owner: string, hookData?: string): void;
6
+ addIncrease(tokenId: BigintIsh, liquidity: BigintIsh, amount0Max: BigintIsh, amount1Max: BigintIsh, hookData?: string): void;
7
+ addDecrease(tokenId: BigintIsh, liquidity: BigintIsh, amount0Min: BigintIsh, amount1Min: BigintIsh, hookData?: string): void;
8
+ addBurn(tokenId: BigintIsh, amount0Min: BigintIsh, amount1Min: BigintIsh, hookData?: string): void;
9
+ addSettlePair(currency0: Currency, currency1: Currency): void;
10
+ addCloseCurrency(currency: Currency): void;
11
+ addTakePair(currency0: Currency, currency1: Currency, recipient: string): void;
12
+ addSweep(currency: Currency, to: string): void;
13
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.V4PositionPlanner = void 0;
4
+ const v4Planner_1 = require("./v4Planner");
5
+ const entities_1 = require("../entities");
6
+ const currencyMap_1 = require("../utils/currencyMap");
7
+ const internalConstants_1 = require("../internalConstants");
8
+ // A wrapper around V4Planner to help handle PositionManager actions
9
+ class V4PositionPlanner extends v4Planner_1.V4Planner {
10
+ // MINT_POSITION
11
+ addMint(pool, tickLower, tickUpper, liquidity, amount0Max, amount1Max, owner, hookData = internalConstants_1.EMPTY_BYTES) {
12
+ const inputs = [
13
+ entities_1.Pool.getPoolKey(pool.currency0, pool.currency1, pool.fee, pool.tickSpacing, pool.hooks),
14
+ tickLower,
15
+ tickUpper,
16
+ liquidity.toString(),
17
+ amount0Max.toString(),
18
+ amount1Max.toString(),
19
+ owner,
20
+ hookData,
21
+ ];
22
+ this.addAction(v4Planner_1.Actions.MINT_POSITION, inputs);
23
+ }
24
+ // INCREASE_LIQUIDITY
25
+ addIncrease(tokenId, liquidity, amount0Max, amount1Max, hookData = internalConstants_1.EMPTY_BYTES) {
26
+ const inputs = [tokenId.toString(), liquidity.toString(), amount0Max.toString(), amount1Max.toString(), hookData];
27
+ this.addAction(v4Planner_1.Actions.INCREASE_LIQUIDITY, inputs);
28
+ }
29
+ // DECREASE_LIQUIDITY
30
+ addDecrease(tokenId, liquidity, amount0Min, amount1Min, hookData = internalConstants_1.EMPTY_BYTES) {
31
+ const inputs = [tokenId.toString(), liquidity.toString(), amount0Min.toString(), amount1Min.toString(), hookData];
32
+ this.addAction(v4Planner_1.Actions.DECREASE_LIQUIDITY, inputs);
33
+ }
34
+ // BURN_POSITION
35
+ addBurn(tokenId, amount0Min, amount1Min, hookData = internalConstants_1.EMPTY_BYTES) {
36
+ const inputs = [tokenId.toString(), amount0Min.toString(), amount1Min.toString(), hookData];
37
+ this.addAction(v4Planner_1.Actions.BURN_POSITION, inputs);
38
+ }
39
+ // SETTLE_PAIR
40
+ addSettlePair(currency0, currency1) {
41
+ const inputs = [(0, currencyMap_1.toAddress)(currency0), (0, currencyMap_1.toAddress)(currency1)];
42
+ this.addAction(v4Planner_1.Actions.SETTLE_PAIR, inputs);
43
+ }
44
+ // CLOSE_CURRENCY
45
+ addCloseCurrency(currency) {
46
+ const inputs = [(0, currencyMap_1.toAddress)(currency)];
47
+ this.addAction(v4Planner_1.Actions.CLOSE_CURRENCY, inputs);
48
+ }
49
+ // TAKE_PAIR
50
+ addTakePair(currency0, currency1, recipient) {
51
+ const inputs = [(0, currencyMap_1.toAddress)(currency0), (0, currencyMap_1.toAddress)(currency1), recipient];
52
+ this.addAction(v4Planner_1.Actions.TAKE_PAIR, inputs);
53
+ }
54
+ // SWEEP
55
+ addSweep(currency, to) {
56
+ const inputs = [(0, currencyMap_1.toAddress)(currency), to];
57
+ this.addAction(v4Planner_1.Actions.SWEEP, inputs);
58
+ }
59
+ }
60
+ exports.V4PositionPlanner = V4PositionPlanner;
61
+ //# sourceMappingURL=v4PositionPlanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v4PositionPlanner.js","sourceRoot":"","sources":["../../../../src/utils/v4PositionPlanner.ts"],"names":[],"mappings":";;;AAAA,2CAAgD;AAChD,0CAAkC;AAElC,sDAAgD;AAChD,4DAAkD;AAElD,oEAAoE;AACpE,MAAa,iBAAkB,SAAQ,qBAAS;IAC9C,gBAAgB;IAChB,OAAO,CACL,IAAU,EACV,SAAiB,EACjB,SAAiB,EACjB,SAAoB,EACpB,UAAqB,EACrB,UAAqB,EACrB,KAAa,EACb,WAAmB,+BAAW;QAE9B,MAAM,MAAM,GAAG;YACb,eAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC;YACvF,SAAS;YACT,SAAS;YACT,SAAS,CAAC,QAAQ,EAAE;YACpB,UAAU,CAAC,QAAQ,EAAE;YACrB,UAAU,CAAC,QAAQ,EAAE;YACrB,KAAK;YACL,QAAQ;SACT,CAAA;QACD,IAAI,CAAC,SAAS,CAAC,mBAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,qBAAqB;IACrB,WAAW,CACT,OAAkB,EAClB,SAAoB,EACpB,UAAqB,EACrB,UAAqB,EACrB,WAAmB,+BAAW;QAE9B,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjH,IAAI,CAAC,SAAS,CAAC,mBAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;IACpD,CAAC;IAED,qBAAqB;IACrB,WAAW,CACT,OAAkB,EAClB,SAAoB,EACpB,UAAqB,EACrB,UAAqB,EACrB,WAAmB,+BAAW;QAE9B,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjH,IAAI,CAAC,SAAS,CAAC,mBAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;IACpD,CAAC;IAED,gBAAgB;IAChB,OAAO,CAAC,OAAkB,EAAE,UAAqB,EAAE,UAAqB,EAAE,WAAmB,+BAAW;QACtG,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC3F,IAAI,CAAC,SAAS,CAAC,mBAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,cAAc;IACd,aAAa,CAAC,SAAmB,EAAE,SAAmB;QACpD,MAAM,MAAM,GAAG,CAAC,IAAA,uBAAS,EAAC,SAAS,CAAC,EAAE,IAAA,uBAAS,EAAC,SAAS,CAAC,CAAC,CAAA;QAC3D,IAAI,CAAC,SAAS,CAAC,mBAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED,iBAAiB;IACjB,gBAAgB,CAAC,QAAkB;QACjC,MAAM,MAAM,GAAG,CAAC,IAAA,uBAAS,EAAC,QAAQ,CAAC,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,CAAC,mBAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IAChD,CAAC;IAED,YAAY;IACZ,WAAW,CAAC,SAAmB,EAAE,SAAmB,EAAE,SAAiB;QACrE,MAAM,MAAM,GAAG,CAAC,IAAA,uBAAS,EAAC,SAAS,CAAC,EAAE,IAAA,uBAAS,EAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;QACtE,IAAI,CAAC,SAAS,CAAC,mBAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ;IACR,QAAQ,CAAC,QAAkB,EAAE,EAAU;QACrC,MAAM,MAAM,GAAG,CAAC,IAAA,uBAAS,EAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,SAAS,CAAC,mBAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;CACF;AA9ED,8CA8EC"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,169 @@
1
+ import { BigintIsh, Percent, NativeCurrency } from '@kittycorn-labs/sdk-core';
2
+ import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer';
3
+ import { Position } from './entities/position';
4
+ import { MethodParameters } from './utils/calldata';
5
+ import { Interface } from '@ethersproject/abi';
6
+ import { PoolKey } from './entities';
7
+ export interface CommonOptions {
8
+ /**
9
+ * How much the pool price is allowed to move from the specified action.
10
+ */
11
+ slippageTolerance: Percent;
12
+ /**
13
+ * Optional data to pass to hooks
14
+ */
15
+ hookData?: string;
16
+ /**
17
+ * When the transaction expires, in epoch seconds.
18
+ */
19
+ deadline: BigintIsh;
20
+ }
21
+ export interface ModifyPositionSpecificOptions {
22
+ /**
23
+ * Indicates the ID of the position to increase liquidity for.
24
+ */
25
+ tokenId: BigintIsh;
26
+ }
27
+ export interface MintSpecificOptions {
28
+ /**
29
+ * The account that should receive the minted NFT.
30
+ */
31
+ recipient: string;
32
+ /**
33
+ * Creates pool if not initialized before mint.
34
+ */
35
+ createPool?: boolean;
36
+ /**
37
+ * Initial price to set on the pool if creating
38
+ */
39
+ sqrtPriceX96?: BigintIsh;
40
+ /**
41
+ * Whether the mint is part of a migration from V3 to V4.
42
+ */
43
+ migrate?: boolean;
44
+ }
45
+ /**
46
+ * Options for producing the calldata to add liquidity.
47
+ */
48
+ export interface CommonAddLiquidityOptions {
49
+ /**
50
+ * Whether to spend ether. If true, one of the currencies must be the NATIVE currency.
51
+ */
52
+ useNative?: NativeCurrency;
53
+ /**
54
+ * The optional permit2 batch permit parameters for spending token0 and token1
55
+ */
56
+ batchPermit?: BatchPermitOptions;
57
+ }
58
+ /**
59
+ * Options for producing the calldata to exit a position.
60
+ */
61
+ export interface RemoveLiquiditySpecificOptions {
62
+ /**
63
+ * The percentage of position liquidity to exit.
64
+ */
65
+ liquidityPercentage: Percent;
66
+ /**
67
+ * Whether the NFT should be burned if the entire position is being exited, by default false.
68
+ */
69
+ burnToken?: boolean;
70
+ /**
71
+ * The optional permit of the token ID being exited, in case the exit transaction is being sent by an account that does not own the NFT
72
+ */
73
+ permit?: NFTPermitOptions;
74
+ }
75
+ export interface CollectSpecificOptions {
76
+ /**
77
+ * Indicates the ID of the position to collect for.
78
+ */
79
+ tokenId: BigintIsh;
80
+ /**
81
+ * The account that should receive the tokens.
82
+ */
83
+ recipient: string;
84
+ }
85
+ export interface TransferOptions {
86
+ /**
87
+ * The account sending the NFT.
88
+ */
89
+ sender: string;
90
+ /**
91
+ * The account that should receive the NFT.
92
+ */
93
+ recipient: string;
94
+ /**
95
+ * The id of the token being sent.
96
+ */
97
+ tokenId: BigintIsh;
98
+ }
99
+ export interface PermitDetails {
100
+ token: string;
101
+ amount: BigintIsh;
102
+ expiration: BigintIsh;
103
+ nonce: BigintIsh;
104
+ }
105
+ export interface AllowanceTransferPermitSingle {
106
+ details: PermitDetails;
107
+ spender: string;
108
+ sigDeadline: BigintIsh;
109
+ }
110
+ export interface AllowanceTransferPermitBatch {
111
+ details: PermitDetails[];
112
+ spender: string;
113
+ sigDeadline: BigintIsh;
114
+ }
115
+ export interface BatchPermitOptions {
116
+ owner: string;
117
+ permitBatch: AllowanceTransferPermitBatch;
118
+ signature: string;
119
+ }
120
+ export interface NFTPermitValues {
121
+ spender: string;
122
+ tokenId: BigintIsh;
123
+ deadline: BigintIsh;
124
+ nonce: BigintIsh;
125
+ }
126
+ export interface NFTPermitOptions extends NFTPermitValues {
127
+ signature: string;
128
+ }
129
+ export interface NFTPermitData {
130
+ domain: TypedDataDomain;
131
+ types: Record<string, TypedDataField[]>;
132
+ values: NFTPermitValues;
133
+ }
134
+ export type MintOptions = CommonOptions & CommonAddLiquidityOptions & MintSpecificOptions;
135
+ export type IncreaseLiquidityOptions = CommonOptions & CommonAddLiquidityOptions & ModifyPositionSpecificOptions;
136
+ export type AddLiquidityOptions = MintOptions | IncreaseLiquidityOptions;
137
+ export type RemoveLiquidityOptions = CommonOptions & RemoveLiquiditySpecificOptions & ModifyPositionSpecificOptions;
138
+ export type CollectOptions = CommonOptions & CollectSpecificOptions;
139
+ export declare abstract class V4PositionManager {
140
+ static INTERFACE: Interface;
141
+ /**
142
+ * Cannot be constructed.
143
+ */
144
+ private constructor();
145
+ /**
146
+ * Public methods to encode method parameters for different actions on the PositionManager contract
147
+ */
148
+ static createCallParameters(poolKey: PoolKey, sqrtPriceX96: BigintIsh): MethodParameters;
149
+ static addCallParameters(position: Position, options: AddLiquidityOptions): MethodParameters;
150
+ /**
151
+ * Produces the calldata for completely or partially exiting a position
152
+ * @param position The position to exit
153
+ * @param options Additional information necessary for generating the calldata
154
+ * @returns The call parameters
155
+ */
156
+ static removeCallParameters(position: Position, options: RemoveLiquidityOptions): MethodParameters;
157
+ /**
158
+ * Produces the calldata for collecting fees from a position
159
+ * @param position The position to collect fees from
160
+ * @param options Additional information necessary for generating the calldata
161
+ * @returns The call parameters
162
+ */
163
+ static collectCallParameters(position: Position, options: CollectOptions): MethodParameters;
164
+ private static encodeInitializePool;
165
+ static encodeModifyLiquidities(unlockData: string, deadline: BigintIsh): string;
166
+ static encodePermitBatch(owner: string, permitBatch: AllowanceTransferPermitBatch, signature: string): string;
167
+ static encodeERC721Permit(spender: string, tokenId: BigintIsh, deadline: BigintIsh, nonce: BigintIsh, signature: string): string;
168
+ static getPermitData(permit: NFTPermitValues, positionManagerAddress: string, chainId: number): NFTPermitData;
169
+ }