@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,261 @@
1
+ import invariant from 'tiny-invariant';
2
+ import { defaultAbiCoder } from '@ethersproject/abi';
3
+ import { Percent, TradeType } from '@kittycorn-labs/sdk-core';
4
+ import { ADDRESS_ZERO, EMPTY_BYTES } from '../internalConstants.js';
5
+ import { encodeRouteToPath } from './encodeRouteToPath.js';
6
+ /**
7
+ * Actions
8
+ * @description Constants that define what action to perform
9
+ * Not all actions are supported yet.
10
+ * @enum {number}
11
+ */
12
+ /**
13
+ * UniversalRouter version
14
+ * @description Version of the UniversalRouter contract
15
+ * @enum {string}
16
+ */
17
+ export var URVersion;
18
+ (function (URVersion) {
19
+ URVersion["V2_0"] = "2.0";
20
+ URVersion["V2_1_1"] = "2.1.1";
21
+ URVersion["V2_1_2"] = "2.1.2";
22
+ URVersion["V2_2_0"] = "2.2.0";
23
+ })(URVersion || (URVersion = {}));
24
+ export function isAtLeastV2_1_1(version) {
25
+ return !!version && version.localeCompare(URVersion.V2_1_1, undefined, { numeric: true }) >= 0;
26
+ }
27
+ export var Actions;
28
+ (function (Actions) {
29
+ // pool actions
30
+ // liquidity actions
31
+ Actions[Actions["INCREASE_LIQUIDITY"] = 0] = "INCREASE_LIQUIDITY";
32
+ Actions[Actions["DECREASE_LIQUIDITY"] = 1] = "DECREASE_LIQUIDITY";
33
+ Actions[Actions["MINT_POSITION"] = 2] = "MINT_POSITION";
34
+ Actions[Actions["BURN_POSITION"] = 3] = "BURN_POSITION";
35
+ // for fee on transfer tokens
36
+ // INCREASE_LIQUIDITY_FROM_DELTAS = 0x04,
37
+ // MINT_POSITION_FROM_DELTAS = 0x05,
38
+ // swapping
39
+ Actions[Actions["SWAP_EXACT_IN_SINGLE"] = 6] = "SWAP_EXACT_IN_SINGLE";
40
+ Actions[Actions["SWAP_EXACT_IN"] = 7] = "SWAP_EXACT_IN";
41
+ Actions[Actions["SWAP_EXACT_OUT_SINGLE"] = 8] = "SWAP_EXACT_OUT_SINGLE";
42
+ Actions[Actions["SWAP_EXACT_OUT"] = 9] = "SWAP_EXACT_OUT";
43
+ // closing deltas on the pool manager
44
+ // settling
45
+ Actions[Actions["SETTLE"] = 11] = "SETTLE";
46
+ Actions[Actions["SETTLE_ALL"] = 12] = "SETTLE_ALL";
47
+ Actions[Actions["SETTLE_PAIR"] = 13] = "SETTLE_PAIR";
48
+ // taking
49
+ Actions[Actions["TAKE"] = 14] = "TAKE";
50
+ Actions[Actions["TAKE_ALL"] = 15] = "TAKE_ALL";
51
+ Actions[Actions["TAKE_PORTION"] = 16] = "TAKE_PORTION";
52
+ Actions[Actions["TAKE_PAIR"] = 17] = "TAKE_PAIR";
53
+ Actions[Actions["CLOSE_CURRENCY"] = 18] = "CLOSE_CURRENCY";
54
+ // CLEAR_OR_TAKE = 0x13,
55
+ Actions[Actions["SWEEP"] = 20] = "SWEEP";
56
+ // for wrapping/unwrapping native
57
+ // WRAP = 0x15,
58
+ Actions[Actions["UNWRAP"] = 22] = "UNWRAP";
59
+ })(Actions || (Actions = {}));
60
+ export var Subparser;
61
+ (function (Subparser) {
62
+ Subparser[Subparser["V4SwapExactInSingle"] = 0] = "V4SwapExactInSingle";
63
+ Subparser[Subparser["V4SwapExactIn"] = 1] = "V4SwapExactIn";
64
+ Subparser[Subparser["V4SwapExactOutSingle"] = 2] = "V4SwapExactOutSingle";
65
+ Subparser[Subparser["V4SwapExactOut"] = 3] = "V4SwapExactOut";
66
+ Subparser[Subparser["PoolKey"] = 4] = "PoolKey";
67
+ })(Subparser || (Subparser = {}));
68
+ const POOL_KEY_STRUCT = '(address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks)';
69
+ const PATH_KEY_STRUCT = '(address intermediateCurrency,uint256 fee,int24 tickSpacing,address hooks,bytes hookData)';
70
+ // UR 2.0 swap structs (without minHopPriceX36)
71
+ const SWAP_EXACT_IN_SINGLE_STRUCT_V2_0 = '(' + POOL_KEY_STRUCT + ' poolKey,bool zeroForOne,uint128 amountIn,uint128 amountOutMinimum,bytes hookData)';
72
+ const SWAP_EXACT_IN_STRUCT_V2_0 = '(address currencyIn,' + PATH_KEY_STRUCT + '[] path,uint128 amountIn,uint128 amountOutMinimum)';
73
+ const SWAP_EXACT_OUT_SINGLE_STRUCT_V2_0 = '(' + POOL_KEY_STRUCT + ' poolKey,bool zeroForOne,uint128 amountOut,uint128 amountInMaximum,bytes hookData)';
74
+ const SWAP_EXACT_OUT_STRUCT_V2_0 = '(address currencyOut,' + PATH_KEY_STRUCT + '[] path,uint128 amountOut,uint128 amountInMaximum)';
75
+ // UR 2.1.1 swap structs (with minHopPriceX36)
76
+ const SWAP_EXACT_IN_SINGLE_STRUCT_V2_1_1 = '(' +
77
+ POOL_KEY_STRUCT +
78
+ ' poolKey,bool zeroForOne,uint128 amountIn,uint128 amountOutMinimum,uint256 minHopPriceX36,bytes hookData)';
79
+ const SWAP_EXACT_IN_STRUCT_V2_1_1 = '(address currencyIn,' +
80
+ PATH_KEY_STRUCT +
81
+ '[] path,uint256[] minHopPriceX36,uint128 amountIn,uint128 amountOutMinimum)';
82
+ const SWAP_EXACT_OUT_SINGLE_STRUCT_V2_1_1 = '(' +
83
+ POOL_KEY_STRUCT +
84
+ ' poolKey,bool zeroForOne,uint128 amountOut,uint128 amountInMaximum,uint256 minHopPriceX36,bytes hookData)';
85
+ const SWAP_EXACT_OUT_STRUCT_V2_1_1 = '(address currencyOut,' +
86
+ PATH_KEY_STRUCT +
87
+ '[] path,uint256[] minHopPriceX36,uint128 amountOut,uint128 amountInMaximum)';
88
+ // V4_BASE_ACTIONS_ABI_DEFINITION uses V2.0 structs (default, without minHopPriceX36)
89
+ const SWAP_EXACT_IN_SINGLE_STRUCT = SWAP_EXACT_IN_SINGLE_STRUCT_V2_0;
90
+ const SWAP_EXACT_IN_STRUCT = SWAP_EXACT_IN_STRUCT_V2_0;
91
+ const SWAP_EXACT_OUT_SINGLE_STRUCT = SWAP_EXACT_OUT_SINGLE_STRUCT_V2_0;
92
+ const SWAP_EXACT_OUT_STRUCT = SWAP_EXACT_OUT_STRUCT_V2_0;
93
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
94
+ export const V4_BASE_ACTIONS_ABI_DEFINITION = {
95
+ // Liquidity commands
96
+ [Actions.INCREASE_LIQUIDITY]: [
97
+ { name: 'tokenId', type: 'uint256' },
98
+ { name: 'liquidity', type: 'uint256' },
99
+ { name: 'amount0Max', type: 'uint128' },
100
+ { name: 'amount1Max', type: 'uint128' },
101
+ { name: 'hookData', type: 'bytes' },
102
+ ],
103
+ [Actions.DECREASE_LIQUIDITY]: [
104
+ { name: 'tokenId', type: 'uint256' },
105
+ { name: 'liquidity', type: 'uint256' },
106
+ { name: 'amount0Min', type: 'uint128' },
107
+ { name: 'amount1Min', type: 'uint128' },
108
+ { name: 'hookData', type: 'bytes' },
109
+ ],
110
+ [Actions.MINT_POSITION]: [
111
+ { name: 'poolKey', type: POOL_KEY_STRUCT, subparser: Subparser.PoolKey },
112
+ { name: 'tickLower', type: 'int24' },
113
+ { name: 'tickUpper', type: 'int24' },
114
+ { name: 'liquidity', type: 'uint256' },
115
+ { name: 'amount0Max', type: 'uint128' },
116
+ { name: 'amount1Max', type: 'uint128' },
117
+ { name: 'owner', type: 'address' },
118
+ { name: 'hookData', type: 'bytes' },
119
+ ],
120
+ [Actions.BURN_POSITION]: [
121
+ { name: 'tokenId', type: 'uint256' },
122
+ { name: 'amount0Min', type: 'uint128' },
123
+ { name: 'amount1Min', type: 'uint128' },
124
+ { name: 'hookData', type: 'bytes' },
125
+ ],
126
+ // Swapping commands
127
+ [Actions.SWAP_EXACT_IN_SINGLE]: [
128
+ { name: 'swap', type: SWAP_EXACT_IN_SINGLE_STRUCT, subparser: Subparser.V4SwapExactInSingle },
129
+ ],
130
+ [Actions.SWAP_EXACT_IN]: [{ name: 'swap', type: SWAP_EXACT_IN_STRUCT, subparser: Subparser.V4SwapExactIn }],
131
+ [Actions.SWAP_EXACT_OUT_SINGLE]: [
132
+ { name: 'swap', type: SWAP_EXACT_OUT_SINGLE_STRUCT, subparser: Subparser.V4SwapExactOutSingle },
133
+ ],
134
+ [Actions.SWAP_EXACT_OUT]: [{ name: 'swap', type: SWAP_EXACT_OUT_STRUCT, subparser: Subparser.V4SwapExactOut }],
135
+ // Payments commands
136
+ [Actions.SETTLE]: [
137
+ { name: 'currency', type: 'address' },
138
+ { name: 'amount', type: 'uint256' },
139
+ { name: 'payerIsUser', type: 'bool' },
140
+ ],
141
+ [Actions.SETTLE_ALL]: [
142
+ { name: 'currency', type: 'address' },
143
+ { name: 'maxAmount', type: 'uint256' },
144
+ ],
145
+ [Actions.SETTLE_PAIR]: [
146
+ { name: 'currency0', type: 'address' },
147
+ { name: 'currency1', type: 'address' },
148
+ ],
149
+ [Actions.TAKE]: [
150
+ { name: 'currency', type: 'address' },
151
+ { name: 'recipient', type: 'address' },
152
+ { name: 'amount', type: 'uint256' },
153
+ ],
154
+ [Actions.TAKE_ALL]: [
155
+ { name: 'currency', type: 'address' },
156
+ { name: 'minAmount', type: 'uint256' },
157
+ ],
158
+ [Actions.TAKE_PORTION]: [
159
+ { name: 'currency', type: 'address' },
160
+ { name: 'recipient', type: 'address' },
161
+ { name: 'bips', type: 'uint256' },
162
+ ],
163
+ [Actions.TAKE_PAIR]: [
164
+ { name: 'currency0', type: 'address' },
165
+ { name: 'currency1', type: 'address' },
166
+ { name: 'recipient', type: 'address' },
167
+ ],
168
+ [Actions.CLOSE_CURRENCY]: [{ name: 'currency', type: 'address' }],
169
+ [Actions.SWEEP]: [
170
+ { name: 'currency', type: 'address' },
171
+ { name: 'recipient', type: 'address' },
172
+ ],
173
+ [Actions.UNWRAP]: [{ name: 'amount', type: 'uint256' }],
174
+ };
175
+ // UR 2.1.1 specific ABI definitions for swap actions (with minHopPriceX36)
176
+ export const V4_SWAP_ACTIONS_V2_1_1 = {
177
+ [Actions.SWAP_EXACT_IN_SINGLE]: [
178
+ { name: 'swap', type: SWAP_EXACT_IN_SINGLE_STRUCT_V2_1_1, subparser: Subparser.V4SwapExactInSingle },
179
+ ],
180
+ [Actions.SWAP_EXACT_IN]: [{ name: 'swap', type: SWAP_EXACT_IN_STRUCT_V2_1_1, subparser: Subparser.V4SwapExactIn }],
181
+ [Actions.SWAP_EXACT_OUT_SINGLE]: [
182
+ { name: 'swap', type: SWAP_EXACT_OUT_SINGLE_STRUCT_V2_1_1, subparser: Subparser.V4SwapExactOutSingle },
183
+ ],
184
+ [Actions.SWAP_EXACT_OUT]: [{ name: 'swap', type: SWAP_EXACT_OUT_STRUCT_V2_1_1, subparser: Subparser.V4SwapExactOut }],
185
+ };
186
+ const FULL_DELTA_AMOUNT = 0;
187
+ export class V4Planner {
188
+ constructor() {
189
+ this.actions = EMPTY_BYTES;
190
+ this.params = [];
191
+ }
192
+ addAction(type, parameters, urVersion = URVersion.V2_0) {
193
+ let command = createAction(type, parameters, urVersion);
194
+ this.params.push(command.encodedInput);
195
+ this.actions = this.actions.concat(command.action.toString(16).padStart(2, '0'));
196
+ return this;
197
+ }
198
+ addTrade(trade, slippageTolerance, minHopPriceX36, urVersion = URVersion.V2_0) {
199
+ const exactOutput = trade.tradeType === TradeType.EXACT_OUTPUT;
200
+ // exactInput we sometimes perform aggregated slippage checks, but not with exactOutput
201
+ if (exactOutput)
202
+ invariant(!!slippageTolerance, 'ExactOut requires slippageTolerance');
203
+ invariant(trade.swaps.length === 1, 'Only accepts Trades with 1 swap (must break swaps into individual trades)');
204
+ invariant(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})`);
205
+ const actionType = exactOutput ? Actions.SWAP_EXACT_OUT : Actions.SWAP_EXACT_IN;
206
+ const currencyIn = currencyAddress(trade.route.pathInput);
207
+ const currencyOut = currencyAddress(trade.route.pathOutput);
208
+ const swapStruct = exactOutput
209
+ ? {
210
+ currencyOut,
211
+ path: encodeRouteToPath(trade.route, exactOutput),
212
+ ...(isAtLeastV2_1_1(urVersion) && { minHopPriceX36: minHopPriceX36 !== null && minHopPriceX36 !== void 0 ? minHopPriceX36 : [] }),
213
+ amountOut: trade.outputAmount.quotient.toString(),
214
+ amountInMaximum: trade.maximumAmountIn(slippageTolerance !== null && slippageTolerance !== void 0 ? slippageTolerance : new Percent(0)).quotient.toString(),
215
+ }
216
+ : {
217
+ currencyIn,
218
+ path: encodeRouteToPath(trade.route, exactOutput),
219
+ ...(isAtLeastV2_1_1(urVersion) && { minHopPriceX36: minHopPriceX36 !== null && minHopPriceX36 !== void 0 ? minHopPriceX36 : [] }),
220
+ amountIn: trade.inputAmount.quotient.toString(),
221
+ amountOutMinimum: slippageTolerance ? trade.minimumAmountOut(slippageTolerance).quotient.toString() : 0,
222
+ };
223
+ this.addSwapAction(actionType, [swapStruct], urVersion);
224
+ return this;
225
+ }
226
+ addSettle(currency, payerIsUser, amount) {
227
+ this.addAction(Actions.SETTLE, [currencyAddress(currency), amount !== null && amount !== void 0 ? amount : FULL_DELTA_AMOUNT, payerIsUser]);
228
+ return this;
229
+ }
230
+ addTake(currency, recipient, amount) {
231
+ const takeAmount = amount !== null && amount !== void 0 ? amount : FULL_DELTA_AMOUNT;
232
+ this.addAction(Actions.TAKE, [currencyAddress(currency), recipient, takeAmount]);
233
+ return this;
234
+ }
235
+ addUnwrap(amount) {
236
+ this.addAction(Actions.UNWRAP, [amount]);
237
+ return this;
238
+ }
239
+ finalize() {
240
+ return defaultAbiCoder.encode(['bytes', 'bytes[]'], [this.actions, this.params]);
241
+ }
242
+ addSwapAction(type, parameters, urVersion) {
243
+ // Use V2.1.1 ABI (with minHopPriceX36) for V2.1.1, otherwise default to V2.0 ABI (without minHopPriceX36)
244
+ const abiDef = isAtLeastV2_1_1(urVersion) ? V4_SWAP_ACTIONS_V2_1_1[type] : V4_BASE_ACTIONS_ABI_DEFINITION[type];
245
+ const encodedInput = defaultAbiCoder.encode(abiDef.map((v) => v.type), parameters);
246
+ this.params.push(encodedInput);
247
+ this.actions = this.actions.concat(type.toString(16).padStart(2, '0'));
248
+ return this;
249
+ }
250
+ }
251
+ function currencyAddress(currency) {
252
+ return currency.isNative ? ADDRESS_ZERO : currency.wrapped.address;
253
+ }
254
+ function createAction(action, parameters, urVersion = URVersion.V2_0) {
255
+ const abiDef = isAtLeastV2_1_1(urVersion) && action in V4_SWAP_ACTIONS_V2_1_1
256
+ ? V4_SWAP_ACTIONS_V2_1_1[action]
257
+ : V4_BASE_ACTIONS_ABI_DEFINITION[action];
258
+ const encodedInput = defaultAbiCoder.encode(abiDef.map((v) => v.type), parameters);
259
+ return { action, encodedInput };
260
+ }
261
+ //# 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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"}
@@ -0,0 +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
+ addCloseCurrency(currency: Currency): void;
11
+ addTakePair(currency0: Currency, currency1: Currency, recipient: string): void;
12
+ addSweep(currency: Currency, to: string): void;
13
+ }
@@ -0,0 +1,57 @@
1
+ import { Actions, V4Planner } from './v4Planner.js';
2
+ import { Pool } from '../entities/index.js';
3
+ import { toAddress } from '../utils/currencyMap.js';
4
+ import { EMPTY_BYTES } from '../internalConstants.js';
5
+ // A wrapper around V4Planner to help handle PositionManager actions
6
+ export class V4PositionPlanner extends V4Planner {
7
+ // MINT_POSITION
8
+ addMint(pool, tickLower, tickUpper, liquidity, amount0Max, amount1Max, owner, hookData = EMPTY_BYTES) {
9
+ const inputs = [
10
+ Pool.getPoolKey(pool.currency0, pool.currency1, pool.fee, pool.tickSpacing, pool.hooks),
11
+ tickLower,
12
+ tickUpper,
13
+ liquidity.toString(),
14
+ amount0Max.toString(),
15
+ amount1Max.toString(),
16
+ owner,
17
+ hookData,
18
+ ];
19
+ this.addAction(Actions.MINT_POSITION, inputs);
20
+ }
21
+ // INCREASE_LIQUIDITY
22
+ addIncrease(tokenId, liquidity, amount0Max, amount1Max, hookData = EMPTY_BYTES) {
23
+ const inputs = [tokenId.toString(), liquidity.toString(), amount0Max.toString(), amount1Max.toString(), hookData];
24
+ this.addAction(Actions.INCREASE_LIQUIDITY, inputs);
25
+ }
26
+ // DECREASE_LIQUIDITY
27
+ addDecrease(tokenId, liquidity, amount0Min, amount1Min, hookData = EMPTY_BYTES) {
28
+ const inputs = [tokenId.toString(), liquidity.toString(), amount0Min.toString(), amount1Min.toString(), hookData];
29
+ this.addAction(Actions.DECREASE_LIQUIDITY, inputs);
30
+ }
31
+ // BURN_POSITION
32
+ addBurn(tokenId, amount0Min, amount1Min, hookData = EMPTY_BYTES) {
33
+ const inputs = [tokenId.toString(), amount0Min.toString(), amount1Min.toString(), hookData];
34
+ this.addAction(Actions.BURN_POSITION, inputs);
35
+ }
36
+ // SETTLE_PAIR
37
+ addSettlePair(currency0, currency1) {
38
+ const inputs = [toAddress(currency0), toAddress(currency1)];
39
+ this.addAction(Actions.SETTLE_PAIR, inputs);
40
+ }
41
+ // CLOSE_CURRENCY
42
+ addCloseCurrency(currency) {
43
+ const inputs = [toAddress(currency)];
44
+ this.addAction(Actions.CLOSE_CURRENCY, inputs);
45
+ }
46
+ // TAKE_PAIR
47
+ addTakePair(currency0, currency1, recipient) {
48
+ const inputs = [toAddress(currency0), toAddress(currency1), recipient];
49
+ this.addAction(Actions.TAKE_PAIR, inputs);
50
+ }
51
+ // SWEEP
52
+ addSweep(currency, to) {
53
+ const inputs = [toAddress(currency), to];
54
+ this.addAction(Actions.SWEEP, inputs);
55
+ }
56
+ }
57
+ //# sourceMappingURL=v4PositionPlanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v4PositionPlanner.js","sourceRoot":"","sources":["../../../../src/utils/v4PositionPlanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
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
+ }
170
+ //# sourceMappingURL=PositionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PositionManager.d.ts","sourceRoot":"","sources":["../../../src/PositionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const MSG_SENDER = "0x0000000000000000000000000000000000000001";
2
+ //# sourceMappingURL=actionConstants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionConstants.d.ts","sourceRoot":"","sources":["../../../src/actionConstants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,+CAA+C,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './pool';
2
+ export * from './route';
3
+ export * from './trade';
4
+ export * from './position';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}