@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
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"tickQuery.d.ts","sourceRoot":"","sources":["../../src/utils/tickQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AAGvB,OAAO,EAEL,wBAAwB,EACxB,cAAc,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,OAAO,EACP,OAAO,EACP,GAAG,EACH,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,qBAAa,SAAS;WACA,aAAa,CAC/B,GAAG,EAAE,GAAG,CAAC,mBAAmB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,EACxE,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,oBAAoB,EAAE,EAAE,EAAE,EAC1B,iBAAiB,EAAE,wBAAwB,GAC1C,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,CAAC;WAuPxC,kBAAkB,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM;WAOK,sBAAsB,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO;WAeI,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CAGrD"}
1
+ {"version":3,"file":"tickQuery.d.ts","sourceRoot":"","sources":["../../src/utils/tickQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AAGvB,OAAO,EAEL,wBAAwB,EACxB,cAAc,EACd,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,OAAO,EACP,OAAO,EACP,GAAG,EACH,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,qBAAa,SAAS;WACA,aAAa,CAC/B,GAAG,EAAE,GAAG,CAAC,mBAAmB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,EACxE,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,oBAAoB,EAAE,EAAE,EAAE,EAC1B,iBAAiB,EAAE,wBAAwB,GAC1C,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,CAAC;IA0CtD;;;;;;;;;OASG;WACW,wBAAwB,CACpC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,OAAO,EACnB,eAAe,EAAE,EAAE,EAAE,EACrB,YAAY,EAAE,wBAAwB,GACrC;QACD,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;KACxB;IAyBD;;;;;;;OAOG;WACiB,8BAA8B,CAChD,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,EAClC,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC;QACT,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;QAChC,gBAAgB,EAAE,OAAO,CAAC;QAC1B,uBAAuB,EAAE,MAAM,CAAC;KACjC,CAAC;IAmCF;;;;;;;;;OASG;WACiB,6BAA6B,CAC/C,MAAM,EAAE,OAAO,EACf,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,EAC1D,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC;QACT,eAAe,EAAE,SAAS,GAAG,SAAS,CAAC;QACvC,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;QACtC,uBAAuB,EAAE,MAAM,CAAC;KACjC,CAAC;IAwDF;;;;;;;;;OASG;WACiB,mBAAmB,CACrC,MAAM,EAAE,OAAO,EACf,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,EAC1D,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC;QACT,QAAQ,EAAE,SAAS,CAAC;QACpB,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;QACtC,uBAAuB,EAAE,MAAM,CAAC;KACjC,CAAC;WAoDY,kBAAkB,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM;WAOK,sBAAsB,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO;WAeI,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CAGrD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stabbleorg/mclmm-sdk",
3
- "version": "0.1.14",
3
+ "version": "0.2.1",
4
4
  "description": "SDK for Stabble's margin-enabled concentrated liquidity market maker",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.mjs",
@@ -31,15 +31,20 @@
31
31
  "generate-clients": "ts-node ./scripts/generate-clients.ts",
32
32
  "ts": "tsc --noEmit",
33
33
  "prepare:canary": "yarn build && npm version --prerelease --preid=canary",
34
- "prepublishOnly": "echo \"Building before publish!\" && yarn build"
34
+ "prepublishOnly": "echo \"Building before publish!\" && yarn build",
35
+ "test": "jest",
36
+ "test:watch": "jest --watch",
37
+ "test:coverage": "jest --coverage",
38
+ "test:unit": "jest --testPathPattern=unit",
39
+ "test:integration": "jest --testPathPattern=integration"
35
40
  },
36
41
  "dependencies": {
37
42
  "@codama/nodes-from-anchor": "^1.2.9",
38
43
  "@codama/renderers-js": "^1.4.2",
39
44
  "@solana-program/system": "^0.9.0",
40
- "@solana-program/token": "^0.6.0",
41
- "@solana-program/token-2022": "^0.5.0",
42
- "@solana/kit": "^3.0.3",
45
+ "@solana-program/token": "^0.7.0",
46
+ "@solana-program/token-2022": "^0.6.0",
47
+ "@solana/kit": "^4.0.0",
43
48
  "@solana/web3.js": "^1.98.4",
44
49
  "@types/bn.js": "^5.2.0",
45
50
  "assert": "^2.0.0",
@@ -52,7 +57,10 @@
52
57
  },
53
58
  "devDependencies": {
54
59
  "@types/invariant": "2.2.35",
60
+ "@types/jest": "^30.0.0",
55
61
  "@types/node": "^24.5.2",
62
+ "jest": "^30.2.0",
63
+ "ts-jest": "^29.4.5",
56
64
  "ts-node": "^10.9.2",
57
65
  "tsup": "^8.0.2",
58
66
  "typedoc": "^0.25.7",