@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
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ > **Kittycorn / Ethers v5 dependency security**
2
+ > Applications combining these SDKs with Ethers v5 must put the following override in their root `package.json`, then run `npm install` and `npm audit`. npm does not inherit dependency-package overrides.
3
+ >
4
+ > ```json
5
+ > { "overrides": { "@ethersproject/providers": { "ws": "8.21.0" } } }
6
+ > ```
7
+ >
8
+ > Ethers v5 also retains an unpatched Low [elliptic advisory](https://github.com/advisories/GHSA-848j-6mx2-7j84). The Kittycorn integration builds quotes/calldata and uses external signers; it does not generate signatures from user private keys. This is a scope assessment, not a fix for elliptic.
9
+
@@ -1,169 +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 declare type MintOptions = CommonOptions & CommonAddLiquidityOptions & MintSpecificOptions;
135
- export declare type IncreaseLiquidityOptions = CommonOptions & CommonAddLiquidityOptions & ModifyPositionSpecificOptions;
136
- export declare type AddLiquidityOptions = MintOptions | IncreaseLiquidityOptions;
137
- export declare type RemoveLiquidityOptions = CommonOptions & RemoveLiquiditySpecificOptions & ModifyPositionSpecificOptions;
138
- export declare 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
- }
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
+ }
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.V4PositionManager = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const sdk_core_1 = require("@kittycorn-labs/sdk-core");
6
+ const jsbi_1 = tslib_1.__importDefault(require("jsbi"));
7
+ const position_1 = require("./entities/position");
8
+ const calldata_1 = require("./utils/calldata");
9
+ const actionConstants_1 = require("./actionConstants");
10
+ const abi_1 = require("@ethersproject/abi");
11
+ const multicall_1 = require("./multicall");
12
+ const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
13
+ const internalConstants_1 = require("./internalConstants");
14
+ const utils_1 = require("./utils");
15
+ const positionManagerAbi_1 = require("./utils/positionManagerAbi");
16
+ const NFT_PERMIT_TYPES = {
17
+ Permit: [
18
+ { name: 'spender', type: 'address' },
19
+ { name: 'tokenId', type: 'uint256' },
20
+ { name: 'nonce', type: 'uint256' },
21
+ { name: 'deadline', type: 'uint256' },
22
+ ],
23
+ };
24
+ // type guard
25
+ function isMint(options) {
26
+ return Object.keys(options).some((k) => k === 'recipient');
27
+ }
28
+ function shouldCreatePool(options) {
29
+ if (options.createPool) {
30
+ (0, tiny_invariant_1.default)(options.sqrtPriceX96 !== undefined, internalConstants_1.NO_SQRT_PRICE);
31
+ return true;
32
+ }
33
+ return false;
34
+ }
35
+ class V4PositionManager {
36
+ /**
37
+ * Cannot be constructed.
38
+ */
39
+ constructor() { }
40
+ /**
41
+ * Public methods to encode method parameters for different actions on the PositionManager contract
42
+ */
43
+ static createCallParameters(poolKey, sqrtPriceX96) {
44
+ return {
45
+ calldata: this.encodeInitializePool(poolKey, sqrtPriceX96),
46
+ value: (0, calldata_1.toHex)(0),
47
+ };
48
+ }
49
+ static addCallParameters(position, options) {
50
+ /**
51
+ * Cases:
52
+ * - if pool does not exist yet, encode initializePool
53
+ * then,
54
+ * - if is mint, encode MINT_POSITION. If migrating, encode a SETTLE and SWEEP for both currencies. Else, encode a SETTLE_PAIR. If on a NATIVE pool, encode a SWEEP.
55
+ * - else, encode INCREASE_LIQUIDITY and CLOSE_CURRENCY for each token (handles accrued fees). If on a NATIVE pool, encode a SWEEP.
56
+ */
57
+ (0, tiny_invariant_1.default)(jsbi_1.default.greaterThan(position.liquidity, internalConstants_1.ZERO), internalConstants_1.ZERO_LIQUIDITY);
58
+ const calldataList = [];
59
+ const planner = new utils_1.V4PositionPlanner();
60
+ // Encode initialize pool.
61
+ if (isMint(options) && shouldCreatePool(options)) {
62
+ // No planner used here because initializePool is not supported as an Action
63
+ calldataList.push(V4PositionManager.encodeInitializePool(position.pool.poolKey, options.sqrtPriceX96));
64
+ }
65
+ // position.pool.currency0 is native if and only if options.useNative is set
66
+ (0, tiny_invariant_1.default)(position.pool.currency0 === options.useNative ||
67
+ (!position.pool.currency0.isNative && options.useNative === undefined), internalConstants_1.NATIVE_NOT_SET);
68
+ // adjust for slippage
69
+ const maximumAmounts = position.mintAmountsWithSlippage(options.slippageTolerance);
70
+ const amount0Max = (0, calldata_1.toHex)(maximumAmounts.amount0);
71
+ const amount1Max = (0, calldata_1.toHex)(maximumAmounts.amount1);
72
+ // We use permit2 to approve tokens to the position manager
73
+ if (options.batchPermit) {
74
+ calldataList.push(V4PositionManager.encodePermitBatch(options.batchPermit.owner, options.batchPermit.permitBatch, options.batchPermit.signature));
75
+ }
76
+ // mint
77
+ if (isMint(options)) {
78
+ const recipient = (0, sdk_core_1.validateAndParseAddress)(options.recipient);
79
+ planner.addMint(position.pool, position.tickLower, position.tickUpper, position.liquidity, amount0Max, amount1Max, recipient, options.hookData);
80
+ }
81
+ else {
82
+ // increase
83
+ planner.addIncrease(options.tokenId, position.liquidity, amount0Max, amount1Max, options.hookData);
84
+ }
85
+ let value = (0, calldata_1.toHex)(0);
86
+ // If migrating, we need to settle and sweep both currencies individually
87
+ if (isMint(options) && options.migrate) {
88
+ if (options.useNative) {
89
+ // unwrap the exact amount needed to send to the pool manager
90
+ planner.addUnwrap(internalConstants_1.OPEN_DELTA);
91
+ }
92
+ // payer is v4 position manager
93
+ planner.addSettle(position.pool.currency0, false);
94
+ planner.addSettle(position.pool.currency1, false);
95
+ // sweep any leftover wrapped native that was not unwrapped
96
+ // recipient will be same as the v4 lp token recipient
97
+ planner.addSweep(options.useNative ? position.pool.currency0.wrapped : position.pool.currency0, options.recipient);
98
+ planner.addSweep(position.pool.currency1, options.recipient);
99
+ }
100
+ else {
101
+ if (isMint(options)) {
102
+ // Mint: the user can never be owed a token when minting (delta is always >= 0), so SETTLE_PAIR is safe
103
+ planner.addSettlePair(position.pool.currency0, position.pool.currency1);
104
+ }
105
+ else {
106
+ // Increase: use CLOSE_CURRENCY instead of SETTLE_PAIR because accrued fees on
107
+ // existing positions can flip the delta positive on one side (e.g. single-sided
108
+ // positions with fees), causing SETTLE_PAIR to revert. CLOSE_CURRENCY handles
109
+ // both directions — settles if the user owes, takes if the user is owed.
110
+ planner.addCloseCurrency(position.pool.currency0);
111
+ planner.addCloseCurrency(position.pool.currency1);
112
+ }
113
+ if (options.useNative) {
114
+ // Any sweeping must happen after the settling.
115
+ // native currency will always be currency0 in v4
116
+ value = (0, calldata_1.toHex)(amount0Max);
117
+ planner.addSweep(position.pool.currency0, actionConstants_1.MSG_SENDER);
118
+ }
119
+ }
120
+ calldataList.push(V4PositionManager.encodeModifyLiquidities(planner.finalize(), options.deadline));
121
+ return {
122
+ calldata: multicall_1.Multicall.encodeMulticall(calldataList),
123
+ value,
124
+ };
125
+ }
126
+ /**
127
+ * Produces the calldata for completely or partially exiting a position
128
+ * @param position The position to exit
129
+ * @param options Additional information necessary for generating the calldata
130
+ * @returns The call parameters
131
+ */
132
+ static removeCallParameters(position, options) {
133
+ var _a;
134
+ /**
135
+ * cases:
136
+ * - if liquidityPercentage is 100%, encode BURN_POSITION and then TAKE_PAIR
137
+ * - else, encode DECREASE_LIQUIDITY and then TAKE_PAIR
138
+ */
139
+ const calldataList = [];
140
+ const planner = new utils_1.V4PositionPlanner();
141
+ const tokenId = (0, calldata_1.toHex)(options.tokenId);
142
+ if (options.burnToken) {
143
+ // if burnToken is true, the specified liquidity percentage must be 100%
144
+ (0, tiny_invariant_1.default)(options.liquidityPercentage.equalTo(internalConstants_1.ONE), internalConstants_1.CANNOT_BURN);
145
+ // if there is a permit, encode the ERC721Permit permit call
146
+ if (options.permit) {
147
+ calldataList.push(V4PositionManager.encodeERC721Permit(options.permit.spender, options.permit.tokenId, options.permit.deadline, options.permit.nonce, options.permit.signature));
148
+ }
149
+ // slippage-adjusted amounts derived from current position liquidity
150
+ const { amount0: amount0Min, amount1: amount1Min } = position.burnAmountsWithSlippage(options.slippageTolerance);
151
+ planner.addBurn(tokenId, amount0Min, amount1Min, options.hookData);
152
+ }
153
+ else {
154
+ // construct a partial position with a percentage of liquidity
155
+ const partialPosition = new position_1.Position({
156
+ pool: position.pool,
157
+ liquidity: options.liquidityPercentage.multiply(position.liquidity).quotient,
158
+ tickLower: position.tickLower,
159
+ tickUpper: position.tickUpper,
160
+ });
161
+ // If the partial position has liquidity=0, this is a collect call and collectCallParameters should be used
162
+ (0, tiny_invariant_1.default)(jsbi_1.default.greaterThan(partialPosition.liquidity, internalConstants_1.ZERO), internalConstants_1.ZERO_LIQUIDITY);
163
+ // slippage-adjusted underlying amounts
164
+ const { amount0: amount0Min, amount1: amount1Min } = partialPosition.burnAmountsWithSlippage(options.slippageTolerance);
165
+ planner.addDecrease(tokenId, partialPosition.liquidity.toString(), amount0Min.toString(), amount1Min.toString(), (_a = options.hookData) !== null && _a !== void 0 ? _a : internalConstants_1.EMPTY_BYTES);
166
+ }
167
+ planner.addTakePair(position.pool.currency0, position.pool.currency1, actionConstants_1.MSG_SENDER);
168
+ calldataList.push(V4PositionManager.encodeModifyLiquidities(planner.finalize(), options.deadline));
169
+ return {
170
+ calldata: multicall_1.Multicall.encodeMulticall(calldataList),
171
+ value: (0, calldata_1.toHex)(0),
172
+ };
173
+ }
174
+ /**
175
+ * Produces the calldata for collecting fees from a position
176
+ * @param position The position to collect fees from
177
+ * @param options Additional information necessary for generating the calldata
178
+ * @returns The call parameters
179
+ */
180
+ static collectCallParameters(position, options) {
181
+ const calldataList = [];
182
+ const planner = new utils_1.V4PositionPlanner();
183
+ const tokenId = (0, calldata_1.toHex)(options.tokenId);
184
+ const recipient = (0, sdk_core_1.validateAndParseAddress)(options.recipient);
185
+ /**
186
+ * To collect fees in V4, we need to:
187
+ * - encode a decrease liquidity by 0
188
+ * - and encode a TAKE_PAIR
189
+ */
190
+ planner.addDecrease(tokenId, '0', '0', '0', options.hookData);
191
+ planner.addTakePair(position.pool.currency0, position.pool.currency1, recipient);
192
+ calldataList.push(V4PositionManager.encodeModifyLiquidities(planner.finalize(), options.deadline));
193
+ return {
194
+ calldata: multicall_1.Multicall.encodeMulticall(calldataList),
195
+ value: (0, calldata_1.toHex)(0),
196
+ };
197
+ }
198
+ // Initialize a pool
199
+ static encodeInitializePool(poolKey, sqrtPriceX96) {
200
+ return V4PositionManager.INTERFACE.encodeFunctionData(internalConstants_1.PositionFunctions.INITIALIZE_POOL, [
201
+ poolKey,
202
+ sqrtPriceX96.toString(),
203
+ ]);
204
+ }
205
+ // Encode a modify liquidities call
206
+ static encodeModifyLiquidities(unlockData, deadline) {
207
+ return V4PositionManager.INTERFACE.encodeFunctionData(internalConstants_1.PositionFunctions.MODIFY_LIQUIDITIES, [unlockData, deadline]);
208
+ }
209
+ // Encode a permit batch call
210
+ static encodePermitBatch(owner, permitBatch, signature) {
211
+ return V4PositionManager.INTERFACE.encodeFunctionData(internalConstants_1.PositionFunctions.PERMIT_BATCH, [
212
+ owner,
213
+ permitBatch,
214
+ signature,
215
+ ]);
216
+ }
217
+ // Encode a ERC721Permit permit call
218
+ static encodeERC721Permit(spender, tokenId, deadline, nonce, signature) {
219
+ return V4PositionManager.INTERFACE.encodeFunctionData(internalConstants_1.PositionFunctions.ERC721PERMIT_PERMIT, [
220
+ spender,
221
+ tokenId,
222
+ deadline,
223
+ nonce,
224
+ signature,
225
+ ]);
226
+ }
227
+ // Prepare the params for an EIP712 signTypedData request
228
+ static getPermitData(permit, positionManagerAddress, chainId) {
229
+ return {
230
+ domain: {
231
+ name: 'Uniswap V4 Positions NFT',
232
+ chainId,
233
+ verifyingContract: positionManagerAddress,
234
+ },
235
+ types: NFT_PERMIT_TYPES,
236
+ values: permit,
237
+ };
238
+ }
239
+ }
240
+ exports.V4PositionManager = V4PositionManager;
241
+ V4PositionManager.INTERFACE = new abi_1.Interface(positionManagerAbi_1.positionManagerAbi);
242
+ //# sourceMappingURL=PositionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PositionManager.js","sourceRoot":"","sources":["../../../src/PositionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ {
2
+ "abi": [
3
+ {
4
+ "inputs": [
5
+ {
6
+ "internalType": "bytes[]",
7
+ "name": "data",
8
+ "type": "bytes[]"
9
+ }
10
+ ],
11
+ "name": "multicall",
12
+ "outputs": [
13
+ {
14
+ "internalType": "bytes[]",
15
+ "name": "results",
16
+ "type": "bytes[]"
17
+ }
18
+ ],
19
+ "stateMutability": "payable",
20
+ "type": "function"
21
+ }
22
+ ]
23
+ }
@@ -1 +1 @@
1
- export declare const MSG_SENDER = "0x0000000000000000000000000000000000000001";
1
+ export declare const MSG_SENDER = "0x0000000000000000000000000000000000000001";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MSG_SENDER = void 0;
4
+ // Shared Action Constants used in the v4 Router and v4 position manager
5
+ exports.MSG_SENDER = '0x0000000000000000000000000000000000000001';
6
+ //# sourceMappingURL=actionConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionConstants.js","sourceRoot":"","sources":["../../../src/actionConstants.ts"],"names":[],"mappings":";;;AAAA,wEAAwE;AAC3D,QAAA,UAAU,GAAG,4CAA4C,CAAA"}
@@ -1,4 +1,4 @@
1
- export * from './pool';
2
- export * from './route';
3
- export * from './trade';
4
- export * from './position';
1
+ export * from './pool';
2
+ export * from './route';
3
+ export * from './trade';
4
+ export * from './position';