@stabbleorg/mclmm-sdk 0.1.12 → 0.2.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 (114) hide show
  1. package/lib/__tests__/fixtures/pool-states.d.ts +84 -0
  2. package/lib/__tests__/fixtures/pool-states.d.ts.map +1 -0
  3. package/lib/__tests__/fixtures/tick-arrays.d.ts +42 -0
  4. package/lib/__tests__/fixtures/tick-arrays.d.ts.map +1 -0
  5. package/lib/__tests__/helpers/integration-mocks.d.ts +82 -0
  6. package/lib/__tests__/helpers/integration-mocks.d.ts.map +1 -0
  7. package/lib/__tests__/integration/performance.test.d.ts +12 -0
  8. package/lib/__tests__/integration/performance.test.d.ts.map +1 -0
  9. package/lib/__tests__/integration/swap-flow.test.d.ts +12 -0
  10. package/lib/__tests__/integration/swap-flow.test.d.ts.map +1 -0
  11. package/lib/__tests__/setup.d.ts +19 -0
  12. package/lib/__tests__/setup.d.ts.map +1 -0
  13. package/lib/__tests__/unit/math-utils.test.d.ts +11 -0
  14. package/lib/__tests__/unit/math-utils.test.d.ts.map +1 -0
  15. package/lib/__tests__/unit/pool-data-manager.test.d.ts +16 -0
  16. package/lib/__tests__/unit/pool-data-manager.test.d.ts.map +1 -0
  17. package/lib/__tests__/unit/price-api-client.test.d.ts +2 -0
  18. package/lib/__tests__/unit/price-api-client.test.d.ts.map +1 -0
  19. package/lib/__tests__/unit/swap-manager.test.d.ts +14 -0
  20. package/lib/__tests__/unit/swap-manager.test.d.ts.map +1 -0
  21. package/lib/__tests__/unit/swap-math-engine.test.d.ts +14 -0
  22. package/lib/__tests__/unit/swap-math-engine.test.d.ts.map +1 -0
  23. package/lib/api/config.d.ts +6 -0
  24. package/lib/api/config.d.ts.map +1 -1
  25. package/lib/client.d.ts +2 -0
  26. package/lib/client.d.ts.map +1 -1
  27. package/lib/constants.d.ts +41 -1
  28. package/lib/constants.d.ts.map +1 -1
  29. package/lib/generated/accounts/ammConfig.d.ts +1 -1
  30. package/lib/generated/accounts/ammConfig.d.ts.map +1 -1
  31. package/lib/generated/accounts/observationState.d.ts +1 -1
  32. package/lib/generated/accounts/observationState.d.ts.map +1 -1
  33. package/lib/generated/accounts/operationState.d.ts +1 -1
  34. package/lib/generated/accounts/operationState.d.ts.map +1 -1
  35. package/lib/generated/accounts/personalPositionState.d.ts +1 -1
  36. package/lib/generated/accounts/personalPositionState.d.ts.map +1 -1
  37. package/lib/generated/accounts/poolState.d.ts +1 -1
  38. package/lib/generated/accounts/poolState.d.ts.map +1 -1
  39. package/lib/generated/accounts/protocolPositionState.d.ts +1 -1
  40. package/lib/generated/accounts/protocolPositionState.d.ts.map +1 -1
  41. package/lib/generated/accounts/supportMintAssociated.d.ts +1 -1
  42. package/lib/generated/accounts/supportMintAssociated.d.ts.map +1 -1
  43. package/lib/generated/accounts/tickArrayBitmapExtension.d.ts +1 -1
  44. package/lib/generated/accounts/tickArrayBitmapExtension.d.ts.map +1 -1
  45. package/lib/generated/accounts/tickArrayState.d.ts +1 -1
  46. package/lib/generated/accounts/tickArrayState.d.ts.map +1 -1
  47. package/lib/generated/instructions/closePosition.d.ts +1 -1
  48. package/lib/generated/instructions/closePosition.d.ts.map +1 -1
  49. package/lib/generated/instructions/closeProtocolPosition.d.ts +1 -1
  50. package/lib/generated/instructions/closeProtocolPosition.d.ts.map +1 -1
  51. package/lib/generated/instructions/collectFundFee.d.ts +1 -1
  52. package/lib/generated/instructions/collectFundFee.d.ts.map +1 -1
  53. package/lib/generated/instructions/collectProtocolFee.d.ts +1 -1
  54. package/lib/generated/instructions/collectProtocolFee.d.ts.map +1 -1
  55. package/lib/generated/instructions/collectRemainingRewards.d.ts +1 -1
  56. package/lib/generated/instructions/collectRemainingRewards.d.ts.map +1 -1
  57. package/lib/generated/instructions/createAmmConfig.d.ts +1 -1
  58. package/lib/generated/instructions/createAmmConfig.d.ts.map +1 -1
  59. package/lib/generated/instructions/createOperationAccount.d.ts +1 -1
  60. package/lib/generated/instructions/createOperationAccount.d.ts.map +1 -1
  61. package/lib/generated/instructions/createPool.d.ts +1 -1
  62. package/lib/generated/instructions/createPool.d.ts.map +1 -1
  63. package/lib/generated/instructions/createSupportMintAssociated.d.ts +1 -1
  64. package/lib/generated/instructions/createSupportMintAssociated.d.ts.map +1 -1
  65. package/lib/generated/instructions/decreaseLiquidityV2.d.ts +1 -1
  66. package/lib/generated/instructions/decreaseLiquidityV2.d.ts.map +1 -1
  67. package/lib/generated/instructions/increaseLiquidityV2.d.ts +1 -1
  68. package/lib/generated/instructions/increaseLiquidityV2.d.ts.map +1 -1
  69. package/lib/generated/instructions/initializeReward.d.ts +1 -1
  70. package/lib/generated/instructions/initializeReward.d.ts.map +1 -1
  71. package/lib/generated/instructions/openPositionWithToken22Nft.d.ts +1 -1
  72. package/lib/generated/instructions/openPositionWithToken22Nft.d.ts.map +1 -1
  73. package/lib/generated/instructions/setRewardParams.d.ts +1 -1
  74. package/lib/generated/instructions/setRewardParams.d.ts.map +1 -1
  75. package/lib/generated/instructions/swapRouterBaseIn.d.ts +1 -1
  76. package/lib/generated/instructions/swapRouterBaseIn.d.ts.map +1 -1
  77. package/lib/generated/instructions/swapV2.d.ts +1 -1
  78. package/lib/generated/instructions/swapV2.d.ts.map +1 -1
  79. package/lib/generated/instructions/transferRewardOwner.d.ts +1 -1
  80. package/lib/generated/instructions/transferRewardOwner.d.ts.map +1 -1
  81. package/lib/generated/instructions/updateAmmConfig.d.ts +1 -1
  82. package/lib/generated/instructions/updateAmmConfig.d.ts.map +1 -1
  83. package/lib/generated/instructions/updateOperationAccount.d.ts +1 -1
  84. package/lib/generated/instructions/updateOperationAccount.d.ts.map +1 -1
  85. package/lib/generated/instructions/updatePoolStatus.d.ts +1 -1
  86. package/lib/generated/instructions/updatePoolStatus.d.ts.map +1 -1
  87. package/lib/generated/instructions/updateRewardInfos.d.ts +1 -1
  88. package/lib/generated/instructions/updateRewardInfos.d.ts.map +1 -1
  89. package/lib/generated/programs/ammV3.d.ts.map +1 -1
  90. package/lib/generated/shared/index.d.ts.map +1 -1
  91. package/lib/generated/types/closePositionEvent.d.ts +16 -0
  92. package/lib/generated/types/closePositionEvent.d.ts.map +1 -0
  93. package/lib/index.d.ts +5 -0
  94. package/lib/index.d.ts.map +1 -1
  95. package/lib/index.js +4555 -1835
  96. package/lib/index.mjs +4548 -1834
  97. package/lib/managers/index.d.ts +7 -0
  98. package/lib/managers/index.d.ts.map +1 -0
  99. package/lib/managers/pool-data-manager.d.ts +132 -0
  100. package/lib/managers/pool-data-manager.d.ts.map +1 -0
  101. package/lib/managers/price-api-client.d.ts +295 -0
  102. package/lib/managers/price-api-client.d.ts.map +1 -0
  103. package/lib/position-manager.d.ts.map +1 -1
  104. package/lib/swap.d.ts +832 -2
  105. package/lib/swap.d.ts.map +1 -1
  106. package/lib/types.d.ts +23 -4
  107. package/lib/types.d.ts.map +1 -1
  108. package/lib/utils/index.d.ts +5 -2
  109. package/lib/utils/index.d.ts.map +1 -1
  110. package/lib/utils/math.d.ts +386 -0
  111. package/lib/utils/math.d.ts.map +1 -1
  112. package/lib/utils/tickQuery.d.ts +62 -1
  113. package/lib/utils/tickQuery.d.ts.map +1 -1
  114. package/package.json +13 -5
package/lib/swap.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../src/swap.ts"],"names":[],"mappings":"AAAA;;;;EAIE"}
1
+ {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../src/swap.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -8,10 +8,24 @@ export interface ClmmSdkConfig {
8
8
  rpc: Rpc<SolanaRpcType>;
9
9
  /** API client config */
10
10
  apiConfig?: ClmmApiConfig;
11
+ /** Price API configuration (for real-time price fetching) */
12
+ priceApiConfig?: {
13
+ /** Base URL for price API*/
14
+ baseUrl: string;
15
+ /** Request timeout in milliseconds (default: 5000) */
16
+ timeout?: number;
17
+ };
11
18
  /** Optional program address override */
12
19
  programAddress?: Address;
13
20
  /** Default commitment level for transactions */
14
21
  commitment?: "processed" | "confirmed" | "finalized";
22
+ /** Optional logger for production-friendly logging */
23
+ logger?: {
24
+ debug?: (message: string, ...args: any[]) => void;
25
+ info?: (message: string, ...args: any[]) => void;
26
+ warn?: (message: string, ...args: any[]) => void;
27
+ error?: (message: string, ...args: any[]) => void;
28
+ };
15
29
  }
16
30
  /**
17
31
  * Return type for make instructions following Raydium's pattern
@@ -135,7 +149,7 @@ export interface SwapRoute {
135
149
  tokenIn: Address;
136
150
  /** Output token */
137
151
  tokenOut: Address;
138
- /** Fee tier */
152
+ /** Fee tier in parts per million (PPM), e.g., 3000 = 0.3% */
139
153
  fee: number;
140
154
  }
141
155
  export interface SwapParams {
@@ -143,7 +157,7 @@ export interface SwapParams {
143
157
  tokenIn: Address;
144
158
  /** Output token mint */
145
159
  tokenOut: Address;
146
- /** Input amount */
160
+ /** Input amount (for exact-in swaps) or maximum input (for exact-out swaps) */
147
161
  amountIn: BN;
148
162
  /** Slippage tolerance (0-1, e.g., 0.01 for 1%) */
149
163
  slippageTolerance: number;
@@ -151,6 +165,10 @@ export interface SwapParams {
151
165
  wallet: Address;
152
166
  /** Optional deadline for transaction */
153
167
  deadline?: BN;
168
+ /** Swap mode: true = exact-in (default), false = exact-out */
169
+ isBaseInput?: boolean;
170
+ /** Desired output amount (for exact-out swaps only) */
171
+ amountOut?: BN;
154
172
  }
155
173
  export interface AddLiquidityParams {
156
174
  /** Pool address */
@@ -239,6 +257,7 @@ export declare enum ClmmErrorCode {
239
257
  SWAP_AMOUNT_CANNOT_BE_ZERO = "SWAP_AMOUNT_CANNOT_BE_ZERO",
240
258
  SWAP_INPUT_OR_OUTPUT_AMOUNT_TOO_SMALL = "SWAP_INPUT_OR_OUTPUT_AMOUNT_TOO_SMALL",
241
259
  INPUT_POOL_VAULT_IS_INVALID = "INPUT_POOL_VAULT_IS_INVALID",
260
+ SWAP_SIMULATION_FAILED = "SWAP_SIMULATION_FAILED",
242
261
  TRANSACTION_FAILED = "TRANSACTION_FAILED",
243
262
  TRANSACTION_TOO_OLD = "TRANSACTION_TOO_OLD",
244
263
  ZERO_MINT_AMOUNT = "ZERO_MINT_AMOUNT",
@@ -265,8 +284,8 @@ export declare enum ClmmErrorCode {
265
284
  }
266
285
  export declare class ClmmError extends Error {
267
286
  code: ClmmErrorCode;
268
- details?: unknown | undefined;
269
- constructor(code: ClmmErrorCode, message: string, details?: unknown | undefined);
287
+ details?: unknown;
288
+ constructor(code: ClmmErrorCode, message: string, details?: unknown);
270
289
  }
271
290
  export interface SwapEvent {
272
291
  /** Pool address */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -71,10 +71,13 @@ export declare function isValidSolanaAddress(address: string): boolean;
71
71
  export declare function addresstoBytes(address: Address): import("@solana/kit").ReadonlyUint8Array;
72
72
  export declare function getFakeSigner(address: Address): {
73
73
  address: Address;
74
- signAndSendTransactions: (transactions: readonly Readonly<{
74
+ signAndSendTransactions: (transactions: readonly (Readonly<{
75
75
  messageBytes: import("@solana/kit").TransactionMessageBytes;
76
76
  signatures: import("@solana/kit").SignaturesMap;
77
- }>[], _config: import("@solana/kit").BaseTransactionSignerConfig | undefined) => Promise<SignatureBytes[]>;
77
+ }> | (Readonly<{
78
+ messageBytes: import("@solana/kit").TransactionMessageBytes;
79
+ signatures: import("@solana/kit").SignaturesMap;
80
+ }> & import("@solana/kit").TransactionWithLifetime))[], _config: import("@solana/kit").BaseTransactionSignerConfig | undefined) => Promise<SignatureBytes[]>;
78
81
  };
79
82
  /**
80
83
  * A very brutal way to differentate between mainnet and devnet RPC
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AAIvB,OAAO,EAGL,GAAG,EACH,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EAEnB,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AAIrB;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE,MAAkB,GACvB,IAAI,CAON;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAiB,GAAG,IAAI,CAO5E;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAAU,GACpB,MAAM,CAmBR;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,SAAS,GAAE,MAAW,GACrB,OAAO,CAGT;AAED;;;;;;GAMG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,GAAE,MAAU,EACtB,YAAY,GAAE,MAAa,GAC1B,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,4CAG9C;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO;;;;;;EAS7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,GAAG,CAAC,mBAAmB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,UAOzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AAIvB,OAAO,EAGL,GAAG,EACH,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EAEnB,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AAIrB;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE,MAAkB,GACvB,IAAI,CAON;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAiB,GAAG,IAAI,CAO5E;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAAU,GACpB,MAAM,CAmBR;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,SAAS,GAAE,MAAW,GACrB,OAAO,CAGT;AAED;;;;;;GAMG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,GAAE,MAAU,EACtB,YAAY,GAAE,MAAa,GAC1B,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,4CAG9C;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO;;;;;;;;;EAS7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,GAAG,CAAC,mBAAmB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,UAOzE"}
@@ -1,11 +1,118 @@
1
+ /**
2
+ * @fileoverview
3
+ * Mathematical utilities for Concentrated Liquidity Market Maker (CLMM) operations.
4
+ *
5
+ * This module provides all the core mathematical functions needed for:
6
+ * - Price calculations and conversions
7
+ * - Liquidity amount calculations
8
+ * - Swap computations
9
+ * - Tick and price range mathematics
10
+ *
11
+ * ## Key Concepts
12
+ *
13
+ * ### X64 Fixed-Point Arithmetic
14
+ * All prices in the CLMM are represented as X64 fixed-point numbers,
15
+ * meaning they are scaled by 2^64 for precision. This allows for exact
16
+ * integer arithmetic while representing fractional values.
17
+ *
18
+ * ### Square Root Price
19
+ * Instead of storing price directly, we store √P × 2^64, where P is the
20
+ * price of token1 in terms of token0. This makes the math more efficient
21
+ * for liquidity calculations.
22
+ *
23
+ * ### Ticks
24
+ * Prices are discretized into ticks, where each tick represents a 0.01%
25
+ * (1 basis point) price movement. Tick i corresponds to price 1.0001^i.
26
+ *
27
+ * ## Module Organization
28
+ *
29
+ * - **MathUtils**: Low-level arithmetic (mul/div with rounding)
30
+ * - **SqrtPriceMath**: Price ↔ sqrt price ↔ tick conversions
31
+ * - **TickMath**: Tick spacing and alignment utilities
32
+ * - **LiquidityMath**: Token amount ↔ liquidity calculations
33
+ * - **SwapMath**: Core swap step computations
34
+ *
35
+ * ## Rust Source Mapping
36
+ *
37
+ * These implementations are direct ports from the Rust program:
38
+ * - `programs/clmm/src/libraries/full_math.rs` → MathUtils
39
+ * - `programs/clmm/src/libraries/sqrt_price_math.rs` → SqrtPriceMath
40
+ * - `programs/clmm/src/libraries/tick_math.rs` → TickMath
41
+ * - `programs/clmm/src/libraries/liquidity_math.rs` → LiquidityMath
42
+ * - `programs/clmm/src/libraries/swap_math.rs` → SwapMath
43
+ *
44
+ * @module utils/math
45
+ */
1
46
  import BN from "bn.js";
2
47
  import Decimal from "decimal.js";
48
+ import type { Account, Address } from "@solana/kit";
49
+ import type { TickArrayState } from "../generated";
3
50
  export declare class MathUtils {
51
+ /**
52
+ * Multiply two numbers and divide by a denominator, rounding up.
53
+ * Used for conservative amount calculations (favoring the protocol).
54
+ *
55
+ * Formula: ceil((a × b) / denominator)
56
+ *
57
+ * @param a - First multiplicand
58
+ * @param b - Second multiplicand
59
+ * @param denominator - Divisor
60
+ * @returns Result rounded up
61
+ */
4
62
  static mulDivRoundingUp(a: BN, b: BN, denominator: BN): BN;
63
+ /**
64
+ * Multiply two numbers and divide by a denominator, rounding down (floor).
65
+ * Used for conservative amount calculations (favoring users).
66
+ *
67
+ * Formula: floor((a × b) / denominator)
68
+ *
69
+ * @param a - First multiplicand
70
+ * @param b - Second multiplicand
71
+ * @param denominator - Divisor
72
+ * @returns Result rounded down
73
+ * @throws Error if denominator is zero
74
+ */
5
75
  static mulDivFloor(a: BN, b: BN, denominator: BN): BN;
76
+ /**
77
+ * Multiply two numbers and divide by a denominator, rounding up (ceiling).
78
+ * Similar to mulDivRoundingUp but uses a different calculation method.
79
+ *
80
+ * Formula: ceil((a × b) / denominator) = floor((a × b + denominator - 1) / denominator)
81
+ *
82
+ * @param a - First multiplicand
83
+ * @param b - Second multiplicand
84
+ * @param denominator - Divisor
85
+ * @returns Result rounded up
86
+ * @throws Error if denominator is zero
87
+ */
6
88
  static mulDivCeil(a: BN, b: BN, denominator: BN): BN;
89
+ /**
90
+ * Convert X64 fixed-point number to Decimal.
91
+ * X64 means the number is scaled by 2^64.
92
+ *
93
+ * @param num - X64 fixed-point number
94
+ * @param decimalPlaces - Optional decimal places to round to
95
+ * @returns Decimal representation
96
+ */
7
97
  static x64ToDecimal(num: BN, decimalPlaces?: number): Decimal;
98
+ /**
99
+ * Convert Decimal to X64 fixed-point number.
100
+ * X64 means the number is scaled by 2^64.
101
+ *
102
+ * @param num - Decimal number
103
+ * @returns X64 fixed-point BN
104
+ */
8
105
  static decimalToX64(num: Decimal): BN;
106
+ /**
107
+ * Wrapping subtraction for U128 values (handles underflow).
108
+ * Used in certain CLMM calculations where wrapping arithmetic is needed.
109
+ *
110
+ * Formula: (n0 + 2^128 - n1) mod 2^128
111
+ *
112
+ * @param n0 - Minuend
113
+ * @param n1 - Subtrahend
114
+ * @returns Wrapped difference
115
+ */
9
116
  static wrappingSubU128(n0: BN, n1: BN): BN;
10
117
  }
11
118
  export declare class SqrtPriceMath {
@@ -24,8 +131,102 @@ export declare class TickMath {
24
131
  static roundPriceWithTickspacing(price: Decimal, tickSpacing: number, mintDecimalsA: number, mintDecimalsB: number): Decimal;
25
132
  }
26
133
  export declare class LiquidityMath {
134
+ /**
135
+ * Adds a signed delta to a liquidity value.
136
+ *
137
+ * @param x - Current liquidity
138
+ * @param y - Delta to add (can be negative)
139
+ * @returns New liquidity value
140
+ */
27
141
  static addDelta(x: BN, y: BN): BN;
142
+ /**
143
+ * Calculates the amount of token A (token0) for a given liquidity across a price range.
144
+ *
145
+ * This corresponds to `get_delta_amount_0_unsigned` in the Rust implementation.
146
+ *
147
+ * **Mathematical Formula:**
148
+ * ```
149
+ * Δx = L × (√P_upper - √P_lower) / (√P_upper × √P_lower)
150
+ * ```
151
+ *
152
+ * Where:
153
+ * - L = liquidity
154
+ * - √P_upper = sqrtPriceX64B (higher price boundary)
155
+ * - √P_lower = sqrtPriceX64A (lower price boundary)
156
+ *
157
+ * **Use Cases:**
158
+ * - Calculating token amounts when adding/removing liquidity
159
+ * - Computing swap amounts in the CLMM
160
+ * - Determining position values
161
+ *
162
+ * @param sqrtPriceX64A - Lower sqrt price boundary (X64 fixed-point)
163
+ * @param sqrtPriceX64B - Upper sqrt price boundary (X64 fixed-point)
164
+ * @param liquidity - Liquidity amount
165
+ * @param roundUp - If true, round up the result (used for amount_in calculations); if false, round down (used for amount_out)
166
+ * @returns Token A amount (unsigned integer)
167
+ *
168
+ * @throws Error if sqrtPriceX64A is not greater than 0
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const sqrtPriceLower = new BN("1234567890");
173
+ * const sqrtPriceUpper = new BN("9876543210");
174
+ * const liquidity = new BN("1000000");
175
+ *
176
+ * // Calculate token A amount needed (round up for safety when depositing)
177
+ * const tokenAAmount = LiquidityMath.getTokenAmountAFromLiquidity(
178
+ * sqrtPriceLower,
179
+ * sqrtPriceUpper,
180
+ * liquidity,
181
+ * true
182
+ * );
183
+ * ```
184
+ */
28
185
  static getTokenAmountAFromLiquidity(sqrtPriceX64A: BN, sqrtPriceX64B: BN, liquidity: BN, roundUp: boolean): BN;
186
+ /**
187
+ * Calculates the amount of token B (token1) for a given liquidity across a price range.
188
+ *
189
+ * This corresponds to `get_delta_amount_1_unsigned` in the Rust implementation.
190
+ *
191
+ * **Mathematical Formula:**
192
+ * ```
193
+ * Δy = L × (√P_upper - √P_lower) / Q64
194
+ * ```
195
+ *
196
+ * Where:
197
+ * - L = liquidity
198
+ * - √P_upper = sqrtPriceX64B (higher price boundary)
199
+ * - √P_lower = sqrtPriceX64A (lower price boundary)
200
+ * - Q64 = 2^64 (fixed-point scaling factor)
201
+ *
202
+ * **Use Cases:**
203
+ * - Calculating token amounts when adding/removing liquidity
204
+ * - Computing swap amounts in the CLMM
205
+ * - Determining position values
206
+ *
207
+ * @param sqrtPriceX64A - Lower sqrt price boundary (X64 fixed-point)
208
+ * @param sqrtPriceX64B - Upper sqrt price boundary (X64 fixed-point)
209
+ * @param liquidity - Liquidity amount
210
+ * @param roundUp - If true, round up the result (used for amount_in calculations); if false, round down (used for amount_out)
211
+ * @returns Token B amount (unsigned integer)
212
+ *
213
+ * @throws Error if sqrtPriceX64A is not greater than 0
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * const sqrtPriceLower = new BN("1234567890");
218
+ * const sqrtPriceUpper = new BN("9876543210");
219
+ * const liquidity = new BN("1000000");
220
+ *
221
+ * // Calculate token B amount needed (round up for safety when depositing)
222
+ * const tokenBAmount = LiquidityMath.getTokenAmountBFromLiquidity(
223
+ * sqrtPriceLower,
224
+ * sqrtPriceUpper,
225
+ * liquidity,
226
+ * true
227
+ * );
228
+ * ```
229
+ */
29
230
  static getTokenAmountBFromLiquidity(sqrtPriceX64A: BN, sqrtPriceX64B: BN, liquidity: BN, roundUp: boolean): BN;
30
231
  static getLiquidityFromTokenAmountA(sqrtPriceX64A: BN, sqrtPriceX64B: BN, amountA: BN, roundUp: boolean): BN;
31
232
  static getLiquidityFromTokenAmountB(sqrtPriceX64A: BN, sqrtPriceX64B: BN, amountB: BN): BN;
@@ -39,6 +240,42 @@ export declare class LiquidityMath {
39
240
  amountSlippageB: BN;
40
241
  };
41
242
  }
243
+ /**
244
+ * SwapMath
245
+ *
246
+ * Implements core swap calculation logic for CLMM (Concentrated Liquidity Market Maker).
247
+ *
248
+ * These functions are direct ports from the Rust implementation in:
249
+ * `programs/clmm/src/libraries/swap_math.rs`
250
+ *
251
+ * @remarks
252
+ * The swap math handles the complex calculations needed to determine:
253
+ * - How much of the input token is consumed
254
+ * - How much of the output token is produced
255
+ * - How much fee is charged
256
+ * - What the new price will be after the swap
257
+ *
258
+ * All prices use X64 fixed-point representation (scaled by 2^64).
259
+ */
260
+ /**
261
+ * Result of a single swap step calculation.
262
+ *
263
+ * Corresponds to the `SwapStep` struct in the Rust implementation.
264
+ */
265
+ export interface SwapStep {
266
+ /** The price after swapping the amount in/out, not to exceed the price target */
267
+ sqrtPriceNextX64: BN;
268
+ /** Amount of input token consumed in this step */
269
+ amountIn: BN;
270
+ /** Amount of output token produced in this step */
271
+ amountOut: BN;
272
+ /** Fee charged for this swap step */
273
+ feeAmount: BN;
274
+ }
275
+ /**
276
+ * Extended step computations interface used in full swap calculations.
277
+ * Includes additional state tracking beyond the basic SwapStep.
278
+ */
42
279
  export interface StepComputations {
43
280
  sqrtPriceStartX64: BN;
44
281
  tickNext: number;
@@ -48,4 +285,153 @@ export interface StepComputations {
48
285
  amountOut: BN;
49
286
  feeAmount: BN;
50
287
  }
288
+ export declare class SwapMath {
289
+ /**
290
+ * Computes the result of swapping some amount in or amount out, given the parameters of the swap.
291
+ *
292
+ * This is the core swap calculation function that determines:
293
+ * - The new price after the swap step
294
+ * - How much input token is consumed
295
+ * - How much output token is produced
296
+ * - How much fee is charged
297
+ *
298
+ * **Corresponds to:** `compute_swap_step` in `programs/clmm/src/libraries/swap_math.rs`
299
+ *
300
+ * @param sqrtPriceCurrentX64 - Current sqrt price (X64 fixed-point)
301
+ * @param sqrtPriceTargetX64 - Target sqrt price for this step (X64 fixed-point)
302
+ * @param liquidity - Available liquidity for this price range
303
+ * @param amountRemaining - Amount of tokens remaining to be swapped
304
+ * @param feeRate - Fee rate (e.g., 3000 for 0.3%)
305
+ * @param isBaseInput - True if specifying exact input amount, false if specifying exact output
306
+ * @param zeroForOne - True if swapping token0 for token1, false otherwise
307
+ * @returns SwapStep result containing new price, amounts, and fees
308
+ *
309
+ * @example
310
+ * ```typescript
311
+ * const step = SwapMath.computeSwapStep(
312
+ * new BN("1234567890"), // current price
313
+ * new BN("9876543210"), // target price
314
+ * new BN("1000000"), // liquidity
315
+ * new BN("10000"), // amount remaining
316
+ * 3000, // 0.3% fee
317
+ * true, // exact input
318
+ * true // swap token0 for token1
319
+ * );
320
+ * console.log(`Amount in: ${step.amountIn}, Amount out: ${step.amountOut}, Fee: ${step.feeAmount}`);
321
+ * ```
322
+ */
323
+ static computeSwapStep(sqrtPriceCurrentX64: BN, sqrtPriceTargetX64: BN, liquidity: BN, amountRemaining: BN, feeRate: number, isBaseInput: boolean, zeroForOne: boolean): SwapStep;
324
+ /**
325
+ * Pre-calculates amount_in or amount_out for the specified price range.
326
+ *
327
+ * The amount may overflow u64 due to unreasonable sqrt_price_target_x64.
328
+ * This function returns null when overflow occurs, which is handled in computeSwapStep
329
+ * to recalculate the price that can be reached based on the amount.
330
+ *
331
+ * **Corresponds to:** `calculate_amount_in_range` in `programs/clmm/src/libraries/swap_math.rs`
332
+ *
333
+ * @param sqrtPriceCurrentX64 - Current sqrt price
334
+ * @param sqrtPriceTargetX64 - Target sqrt price
335
+ * @param liquidity - Available liquidity
336
+ * @param zeroForOne - Swap direction
337
+ * @param isBaseInput - Whether this is an exact input swap
338
+ * @returns The calculated amount, or null if overflow would occur
339
+ *
340
+ * @private
341
+ */
342
+ private static calculateAmountInRange;
343
+ /**
344
+ * Complete swap computation that handles crossing multiple ticks.
345
+ * This is the full implementation that iterates through tick arrays as needed.
346
+ *
347
+ * @param poolState - Current pool state with price, tick, liquidity
348
+ * @param tickArrayCache - Cache of loaded tick arrays
349
+ * @param tickSpacing - Pool tick spacing
350
+ * @param amountSpecified - Amount to swap (input for exact input, output for exact output)
351
+ * @param sqrtPriceLimitX64 - Price limit for slippage protection
352
+ * @param zeroForOne - Swap direction (token0 → token1 or token1 → token0)
353
+ * @param isBaseInput - True for exact input swaps, false for exact output swaps
354
+ * @param feeRate - Trading fee rate (e.g., 3000 for 0.3%)
355
+ * @param protocolFeeRate - Protocol fee rate (portion of trading fee)
356
+ * @param fundFeeRate - Fund fee rate (portion of trading fee)
357
+ * @param poolId - Pool address for PDA derivation
358
+ * @returns Swap result with amounts, fees, and updated state
359
+ *
360
+ * @example
361
+ * ```typescript
362
+ * const result = await SwapMath.swapCompute({
363
+ * poolState: {
364
+ * sqrtPriceX64: new BN("79228162514264337593543950336"),
365
+ * tickCurrent: 0,
366
+ * liquidity: new BN("1000000000"),
367
+ * feeGrowthGlobal0X64: new BN(0),
368
+ * feeGrowthGlobal1X64: new BN(0),
369
+ * },
370
+ * tickArrayCache: {},
371
+ * tickSpacing: 10,
372
+ * amountSpecified: new BN("1000000"),
373
+ * sqrtPriceLimitX64: SwapMath.getDefaultSqrtPriceLimit(true),
374
+ * zeroForOne: true,
375
+ * isBaseInput: true,
376
+ * feeRate: 3000,
377
+ * protocolFeeRate: 200,
378
+ * fundFeeRate: 100,
379
+ * poolId: "..." as Address,
380
+ * });
381
+ * console.log(`Swapped ${result.amountIn} for ${result.amountOut}`);
382
+ * ```
383
+ */
384
+ static swapCompute(params: {
385
+ poolState: {
386
+ sqrtPriceX64: BN;
387
+ tickCurrent: number;
388
+ liquidity: BN;
389
+ feeGrowthGlobal0X64: BN;
390
+ feeGrowthGlobal1X64: BN;
391
+ };
392
+ tickArrayCache: {
393
+ [key: string]: Account<TickArrayState>;
394
+ };
395
+ tickSpacing: number;
396
+ amountSpecified: BN;
397
+ sqrtPriceLimitX64: BN;
398
+ zeroForOne: boolean;
399
+ isBaseInput: boolean;
400
+ feeRate: number;
401
+ protocolFeeRate: number;
402
+ fundFeeRate: number;
403
+ poolId: Address;
404
+ }): Promise<{
405
+ amountIn: BN;
406
+ amountOut: BN;
407
+ feeAmount: BN;
408
+ protocolFee: BN;
409
+ fundFee: BN;
410
+ endSqrtPriceX64: BN;
411
+ endTick: number;
412
+ endLiquidity: BN;
413
+ crossedTicks: Array<{
414
+ tick: number;
415
+ liquidityNet: bigint;
416
+ }>;
417
+ }>;
418
+ /**
419
+ * Helper function to validate swap parameters before execution.
420
+ *
421
+ * @param sqrtPriceCurrentX64 - Current sqrt price
422
+ * @param sqrtPriceLimitX64 - Price limit for slippage protection
423
+ * @param amountSpecified - Amount to swap
424
+ * @param zeroForOne - Swap direction
425
+ * @throws Error if parameters are invalid
426
+ */
427
+ static validateSwapParams(sqrtPriceCurrentX64: BN, sqrtPriceLimitX64: BN, amountSpecified: BN, zeroForOne: boolean): void;
428
+ /**
429
+ * Calculate default sqrt price limit based on swap direction.
430
+ * This provides slippage protection by limiting price movement.
431
+ *
432
+ * @param zeroForOne - Swap direction
433
+ * @returns Default price limit
434
+ */
435
+ static getDefaultSqrtPriceLimit(zeroForOne: boolean): BN;
436
+ }
51
437
  //# sourceMappingURL=math.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,72 @@
1
1
  import BN from "bn.js";
2
- import { TickArrayBitmapExtension, TickArrayState } from "../generated";
2
+ import { TickArrayBitmapExtension, TickArrayState, TickState } from "../generated";
3
3
  import { Account, Address, Rpc, SolanaRpcApiDevnet, SolanaRpcApiMainnet, SolanaRpcApiTestnet } from "@solana/kit";
4
4
  export declare const FETCH_TICKARRAY_COUNT = 15;
5
5
  export declare class TickQuery {
6
6
  static getTickArrays(rpc: Rpc<SolanaRpcApiMainnet | SolanaRpcApiDevnet | SolanaRpcApiTestnet>, poolId: Address, tickCurrent: number, tickSpacing: number, tickArrayBitmapArray: BN[], exTickArrayBitmap: TickArrayBitmapExtension): Promise<{
7
7
  [key: string]: Account<TickArrayState>;
8
8
  }>;
9
+ /**
10
+ * Find the next initialized tick array starting from a given offset.
11
+ *
12
+ * @param tickIndex - Current tick index
13
+ * @param tickSpacing - Pool tick spacing
14
+ * @param zeroForOne - Swap direction
15
+ * @param tickArrayBitmap - Bitmap of initialized tick arrays
16
+ * @param exBitmapInfo - Extended bitmap information
17
+ * @returns Next tick array start index and whether it exists
18
+ */
19
+ static nextInitializedTickArray(tickIndex: number, tickSpacing: number, zeroForOne: boolean, tickArrayBitmap: BN[], exBitmapInfo: TickArrayBitmapExtension): {
20
+ isExist: boolean;
21
+ nextStartIndex: number;
22
+ };
23
+ /**
24
+ * Find the first initialized tick in a tick array.
25
+ *
26
+ * @param poolId - Pool address
27
+ * @param tickArray - Tick array state
28
+ * @param zeroForOne - Search direction
29
+ * @returns First initialized tick, tick array address, and start index
30
+ */
31
+ static firstInitializedTickInOneArray(poolId: Address, tickArray: Account<TickArrayState>, zeroForOne: boolean): Promise<{
32
+ nextTick: TickState | undefined;
33
+ tickArrayAddress: Address;
34
+ tickArrayStartTickIndex: number;
35
+ }>;
36
+ /**
37
+ * Find the next initialized tick within a single tick array.
38
+ *
39
+ * @param poolId - Pool address
40
+ * @param tickArrayCache - Cache of loaded tick arrays
41
+ * @param tickIndex - Current tick index
42
+ * @param tickSpacing - Pool tick spacing
43
+ * @param zeroForOne - Search direction
44
+ * @returns Next initialized tick info
45
+ */
46
+ static nextInitializedTickInOneArray(poolId: Address, tickArrayCache: {
47
+ [key: string]: Account<TickArrayState>;
48
+ }, tickIndex: number, tickSpacing: number, zeroForOne: boolean): Promise<{
49
+ initializedTick: TickState | undefined;
50
+ tickArrayAddress: Address | undefined;
51
+ tickArrayStartTickIndex: number;
52
+ }>;
53
+ /**
54
+ * Find the next initialized tick across multiple tick arrays.
55
+ *
56
+ * @param poolId - Pool address
57
+ * @param tickArrayCache - Cache of loaded tick arrays
58
+ * @param tickIndex - Current tick index
59
+ * @param tickSpacing - Pool tick spacing
60
+ * @param zeroForOne - Search direction
61
+ * @returns Next initialized tick info
62
+ */
63
+ static nextInitializedTick(poolId: Address, tickArrayCache: {
64
+ [key: string]: Account<TickArrayState>;
65
+ }, tickIndex: number, tickSpacing: number, zeroForOne: boolean): Promise<{
66
+ nextTick: TickState;
67
+ tickArrayAddress: Address | undefined;
68
+ tickArrayStartTickIndex: number;
69
+ }>;
9
70
  static getArrayStartIndex(tickIndex: number, tickSpacing: number): number;
10
71
  static checkIsValidStartIndex(tickIndex: number, tickSpacing: number): boolean;
11
72
  static tickCount(tickSpacing: number): number;