@stabbleorg/mclmm-sdk 0.1.14 → 0.2.1

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 (112) 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/index.d.ts +5 -0
  92. package/lib/index.d.ts.map +1 -1
  93. package/lib/index.js +4530 -1821
  94. package/lib/index.mjs +4523 -1820
  95. package/lib/managers/index.d.ts +7 -0
  96. package/lib/managers/index.d.ts.map +1 -0
  97. package/lib/managers/pool-data-manager.d.ts +132 -0
  98. package/lib/managers/pool-data-manager.d.ts.map +1 -0
  99. package/lib/managers/price-api-client.d.ts +295 -0
  100. package/lib/managers/price-api-client.d.ts.map +1 -0
  101. package/lib/position-manager.d.ts.map +1 -1
  102. package/lib/swap.d.ts +832 -2
  103. package/lib/swap.d.ts.map +1 -1
  104. package/lib/types.d.ts +29 -11
  105. package/lib/types.d.ts.map +1 -1
  106. package/lib/utils/index.d.ts +5 -2
  107. package/lib/utils/index.d.ts.map +1 -1
  108. package/lib/utils/math.d.ts +389 -1
  109. package/lib/utils/math.d.ts.map +1 -1
  110. package/lib/utils/tickQuery.d.ts +62 -1
  111. package/lib/utils/tickQuery.d.ts.map +1 -1
  112. 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
@@ -2,16 +2,31 @@ import type { Address, Rpc, Instruction, TransactionSigner, SolanaRpcApiDevnet,
2
2
  import type { PoolState, PersonalPositionState } from "./generated";
3
3
  import BN from "bn.js";
4
4
  import { ClmmApiConfig } from "./api";
5
+ import { ReturnTypeGetTickPrice } from "./utils";
5
6
  export type SolanaRpcType = SolanaRpcApiMainnet | SolanaRpcApiDevnet | SolanaRpcApiTestnet;
6
7
  export interface ClmmSdkConfig {
7
8
  /** RPC client for Solana network operations */
8
9
  rpc: Rpc<SolanaRpcType>;
9
10
  /** API client config */
10
11
  apiConfig?: ClmmApiConfig;
12
+ /** Price API configuration (for real-time price fetching) */
13
+ priceApiConfig?: {
14
+ /** Base URL for price API*/
15
+ baseUrl: string;
16
+ /** Request timeout in milliseconds (default: 5000) */
17
+ timeout?: number;
18
+ };
11
19
  /** Optional program address override */
12
20
  programAddress?: Address;
13
21
  /** Default commitment level for transactions */
14
22
  commitment?: "processed" | "confirmed" | "finalized";
23
+ /** Optional logger for production-friendly logging */
24
+ logger?: {
25
+ debug?: (message: string, ...args: any[]) => void;
26
+ info?: (message: string, ...args: any[]) => void;
27
+ warn?: (message: string, ...args: any[]) => void;
28
+ error?: (message: string, ...args: any[]) => void;
29
+ };
15
30
  }
16
31
  /**
17
32
  * Return type for make instructions following Raydium's pattern
@@ -89,13 +104,11 @@ export interface PositionInfo extends PersonalPositionState {
89
104
  tokenMint0: Address;
90
105
  tokenMint1: Address;
91
106
  /** Computed token amounts based on liquidity and price range */
92
- amount0: bigint;
93
- amount1: bigint;
94
- /** Price range bounds in human-readable format */
95
- priceRange: {
96
- lower: number;
97
- upper: number;
98
- };
107
+ amount0: string;
108
+ amount1: string;
109
+ /** Price range bounds */
110
+ priceLower: ReturnTypeGetTickPrice;
111
+ priceUpper: ReturnTypeGetTickPrice;
99
112
  /** Whether position is currently in range */
100
113
  inRange: boolean;
101
114
  /** Position age in seconds (from creation to now) */
@@ -135,7 +148,7 @@ export interface SwapRoute {
135
148
  tokenIn: Address;
136
149
  /** Output token */
137
150
  tokenOut: Address;
138
- /** Fee tier */
151
+ /** Fee tier in parts per million (PPM), e.g., 3000 = 0.3% */
139
152
  fee: number;
140
153
  }
141
154
  export interface SwapParams {
@@ -143,7 +156,7 @@ export interface SwapParams {
143
156
  tokenIn: Address;
144
157
  /** Output token mint */
145
158
  tokenOut: Address;
146
- /** Input amount */
159
+ /** Input amount (for exact-in swaps) or maximum input (for exact-out swaps) */
147
160
  amountIn: BN;
148
161
  /** Slippage tolerance (0-1, e.g., 0.01 for 1%) */
149
162
  slippageTolerance: number;
@@ -151,6 +164,10 @@ export interface SwapParams {
151
164
  wallet: Address;
152
165
  /** Optional deadline for transaction */
153
166
  deadline?: BN;
167
+ /** Swap mode: true = exact-in (default), false = exact-out */
168
+ isBaseInput?: boolean;
169
+ /** Desired output amount (for exact-out swaps only) */
170
+ amountOut?: BN;
154
171
  }
155
172
  export interface AddLiquidityParams {
156
173
  /** Pool address */
@@ -239,6 +256,7 @@ export declare enum ClmmErrorCode {
239
256
  SWAP_AMOUNT_CANNOT_BE_ZERO = "SWAP_AMOUNT_CANNOT_BE_ZERO",
240
257
  SWAP_INPUT_OR_OUTPUT_AMOUNT_TOO_SMALL = "SWAP_INPUT_OR_OUTPUT_AMOUNT_TOO_SMALL",
241
258
  INPUT_POOL_VAULT_IS_INVALID = "INPUT_POOL_VAULT_IS_INVALID",
259
+ SWAP_SIMULATION_FAILED = "SWAP_SIMULATION_FAILED",
242
260
  TRANSACTION_FAILED = "TRANSACTION_FAILED",
243
261
  TRANSACTION_TOO_OLD = "TRANSACTION_TOO_OLD",
244
262
  ZERO_MINT_AMOUNT = "ZERO_MINT_AMOUNT",
@@ -265,8 +283,8 @@ export declare enum ClmmErrorCode {
265
283
  }
266
284
  export declare class ClmmError extends Error {
267
285
  code: ClmmErrorCode;
268
- details?: unknown | undefined;
269
- constructor(code: ClmmErrorCode, message: string, details?: unknown | undefined);
286
+ details?: unknown;
287
+ constructor(code: ClmmErrorCode, message: string, details?: unknown);
270
288
  }
271
289
  export interface SwapEvent {
272
290
  /** 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;
@@ -34,11 +235,49 @@ export declare class LiquidityMath {
34
235
  amountA: BN;
35
236
  amountB: BN;
36
237
  };
37
- static getAmountsFromLiquidityWithSlippage(sqrtPriceCurrentX64: BN, sqrtPriceX64A: BN, sqrtPriceX64B: BN, liquidity: BN, amountMax: boolean, roundUp: boolean, amountSlippage: number): {
238
+ static getAmountsFromLiquidityWithSlippage(sqrtPriceCurrentX64: BN, sqrtPriceX64A: BN, sqrtPriceX64B: BN, liquidity: BN, add: boolean, roundUp: boolean, amountSlippage: number): {
239
+ amountA: BN;
240
+ amountB: BN;
38
241
  amountSlippageA: BN;
39
242
  amountSlippageB: BN;
40
243
  };
41
244
  }
245
+ /**
246
+ * SwapMath
247
+ *
248
+ * Implements core swap calculation logic for CLMM (Concentrated Liquidity Market Maker).
249
+ *
250
+ * These functions are direct ports from the Rust implementation in:
251
+ * `programs/clmm/src/libraries/swap_math.rs`
252
+ *
253
+ * @remarks
254
+ * The swap math handles the complex calculations needed to determine:
255
+ * - How much of the input token is consumed
256
+ * - How much of the output token is produced
257
+ * - How much fee is charged
258
+ * - What the new price will be after the swap
259
+ *
260
+ * All prices use X64 fixed-point representation (scaled by 2^64).
261
+ */
262
+ /**
263
+ * Result of a single swap step calculation.
264
+ *
265
+ * Corresponds to the `SwapStep` struct in the Rust implementation.
266
+ */
267
+ export interface SwapStep {
268
+ /** The price after swapping the amount in/out, not to exceed the price target */
269
+ sqrtPriceNextX64: BN;
270
+ /** Amount of input token consumed in this step */
271
+ amountIn: BN;
272
+ /** Amount of output token produced in this step */
273
+ amountOut: BN;
274
+ /** Fee charged for this swap step */
275
+ feeAmount: BN;
276
+ }
277
+ /**
278
+ * Extended step computations interface used in full swap calculations.
279
+ * Includes additional state tracking beyond the basic SwapStep.
280
+ */
42
281
  export interface StepComputations {
43
282
  sqrtPriceStartX64: BN;
44
283
  tickNext: number;
@@ -48,4 +287,153 @@ export interface StepComputations {
48
287
  amountOut: BN;
49
288
  feeAmount: BN;
50
289
  }
290
+ export declare class SwapMath {
291
+ /**
292
+ * Computes the result of swapping some amount in or amount out, given the parameters of the swap.
293
+ *
294
+ * This is the core swap calculation function that determines:
295
+ * - The new price after the swap step
296
+ * - How much input token is consumed
297
+ * - How much output token is produced
298
+ * - How much fee is charged
299
+ *
300
+ * **Corresponds to:** `compute_swap_step` in `programs/clmm/src/libraries/swap_math.rs`
301
+ *
302
+ * @param sqrtPriceCurrentX64 - Current sqrt price (X64 fixed-point)
303
+ * @param sqrtPriceTargetX64 - Target sqrt price for this step (X64 fixed-point)
304
+ * @param liquidity - Available liquidity for this price range
305
+ * @param amountRemaining - Amount of tokens remaining to be swapped
306
+ * @param feeRate - Fee rate (e.g., 3000 for 0.3%)
307
+ * @param isBaseInput - True if specifying exact input amount, false if specifying exact output
308
+ * @param zeroForOne - True if swapping token0 for token1, false otherwise
309
+ * @returns SwapStep result containing new price, amounts, and fees
310
+ *
311
+ * @example
312
+ * ```typescript
313
+ * const step = SwapMath.computeSwapStep(
314
+ * new BN("1234567890"), // current price
315
+ * new BN("9876543210"), // target price
316
+ * new BN("1000000"), // liquidity
317
+ * new BN("10000"), // amount remaining
318
+ * 3000, // 0.3% fee
319
+ * true, // exact input
320
+ * true // swap token0 for token1
321
+ * );
322
+ * console.log(`Amount in: ${step.amountIn}, Amount out: ${step.amountOut}, Fee: ${step.feeAmount}`);
323
+ * ```
324
+ */
325
+ static computeSwapStep(sqrtPriceCurrentX64: BN, sqrtPriceTargetX64: BN, liquidity: BN, amountRemaining: BN, feeRate: number, isBaseInput: boolean, zeroForOne: boolean): SwapStep;
326
+ /**
327
+ * Pre-calculates amount_in or amount_out for the specified price range.
328
+ *
329
+ * The amount may overflow u64 due to unreasonable sqrt_price_target_x64.
330
+ * This function returns null when overflow occurs, which is handled in computeSwapStep
331
+ * to recalculate the price that can be reached based on the amount.
332
+ *
333
+ * **Corresponds to:** `calculate_amount_in_range` in `programs/clmm/src/libraries/swap_math.rs`
334
+ *
335
+ * @param sqrtPriceCurrentX64 - Current sqrt price
336
+ * @param sqrtPriceTargetX64 - Target sqrt price
337
+ * @param liquidity - Available liquidity
338
+ * @param zeroForOne - Swap direction
339
+ * @param isBaseInput - Whether this is an exact input swap
340
+ * @returns The calculated amount, or null if overflow would occur
341
+ *
342
+ * @private
343
+ */
344
+ private static calculateAmountInRange;
345
+ /**
346
+ * Complete swap computation that handles crossing multiple ticks.
347
+ * This is the full implementation that iterates through tick arrays as needed.
348
+ *
349
+ * @param poolState - Current pool state with price, tick, liquidity
350
+ * @param tickArrayCache - Cache of loaded tick arrays
351
+ * @param tickSpacing - Pool tick spacing
352
+ * @param amountSpecified - Amount to swap (input for exact input, output for exact output)
353
+ * @param sqrtPriceLimitX64 - Price limit for slippage protection
354
+ * @param zeroForOne - Swap direction (token0 → token1 or token1 → token0)
355
+ * @param isBaseInput - True for exact input swaps, false for exact output swaps
356
+ * @param feeRate - Trading fee rate (e.g., 3000 for 0.3%)
357
+ * @param protocolFeeRate - Protocol fee rate (portion of trading fee)
358
+ * @param fundFeeRate - Fund fee rate (portion of trading fee)
359
+ * @param poolId - Pool address for PDA derivation
360
+ * @returns Swap result with amounts, fees, and updated state
361
+ *
362
+ * @example
363
+ * ```typescript
364
+ * const result = await SwapMath.swapCompute({
365
+ * poolState: {
366
+ * sqrtPriceX64: new BN("79228162514264337593543950336"),
367
+ * tickCurrent: 0,
368
+ * liquidity: new BN("1000000000"),
369
+ * feeGrowthGlobal0X64: new BN(0),
370
+ * feeGrowthGlobal1X64: new BN(0),
371
+ * },
372
+ * tickArrayCache: {},
373
+ * tickSpacing: 10,
374
+ * amountSpecified: new BN("1000000"),
375
+ * sqrtPriceLimitX64: SwapMath.getDefaultSqrtPriceLimit(true),
376
+ * zeroForOne: true,
377
+ * isBaseInput: true,
378
+ * feeRate: 3000,
379
+ * protocolFeeRate: 200,
380
+ * fundFeeRate: 100,
381
+ * poolId: "..." as Address,
382
+ * });
383
+ * console.log(`Swapped ${result.amountIn} for ${result.amountOut}`);
384
+ * ```
385
+ */
386
+ static swapCompute(params: {
387
+ poolState: {
388
+ sqrtPriceX64: BN;
389
+ tickCurrent: number;
390
+ liquidity: BN;
391
+ feeGrowthGlobal0X64: BN;
392
+ feeGrowthGlobal1X64: BN;
393
+ };
394
+ tickArrayCache: {
395
+ [key: string]: Account<TickArrayState>;
396
+ };
397
+ tickSpacing: number;
398
+ amountSpecified: BN;
399
+ sqrtPriceLimitX64: BN;
400
+ zeroForOne: boolean;
401
+ isBaseInput: boolean;
402
+ feeRate: number;
403
+ protocolFeeRate: number;
404
+ fundFeeRate: number;
405
+ poolId: Address;
406
+ }): Promise<{
407
+ amountIn: BN;
408
+ amountOut: BN;
409
+ feeAmount: BN;
410
+ protocolFee: BN;
411
+ fundFee: BN;
412
+ endSqrtPriceX64: BN;
413
+ endTick: number;
414
+ endLiquidity: BN;
415
+ crossedTicks: Array<{
416
+ tick: number;
417
+ liquidityNet: bigint;
418
+ }>;
419
+ }>;
420
+ /**
421
+ * Helper function to validate swap parameters before execution.
422
+ *
423
+ * @param sqrtPriceCurrentX64 - Current sqrt price
424
+ * @param sqrtPriceLimitX64 - Price limit for slippage protection
425
+ * @param amountSpecified - Amount to swap
426
+ * @param zeroForOne - Swap direction
427
+ * @throws Error if parameters are invalid
428
+ */
429
+ static validateSwapParams(sqrtPriceCurrentX64: BN, sqrtPriceLimitX64: BN, amountSpecified: BN, zeroForOne: boolean): void;
430
+ /**
431
+ * Calculate default sqrt price limit based on swap direction.
432
+ * This provides slippage protection by limiting price movement.
433
+ *
434
+ * @param zeroForOne - Swap direction
435
+ * @returns Default price limit
436
+ */
437
+ static getDefaultSqrtPriceLimit(zeroForOne: boolean): BN;
438
+ }
51
439
  //# 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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"}