@coffer_so/sdk 1.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 (228) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +283 -0
  3. package/dist/clients/AdminClient.d.ts +194 -0
  4. package/dist/clients/AdminClient.d.ts.map +1 -0
  5. package/dist/clients/AdminClient.js +482 -0
  6. package/dist/clients/AdminClient.js.map +1 -0
  7. package/dist/clients/CofferBackendClient.d.ts +877 -0
  8. package/dist/clients/CofferBackendClient.d.ts.map +1 -0
  9. package/dist/clients/CofferBackendClient.js +536 -0
  10. package/dist/clients/CofferBackendClient.js.map +1 -0
  11. package/dist/clients/CubeBackendClient.d.ts +877 -0
  12. package/dist/clients/CubeBackendClient.d.ts.map +1 -0
  13. package/dist/clients/CubeBackendClient.js +536 -0
  14. package/dist/clients/CubeBackendClient.js.map +1 -0
  15. package/dist/clients/CubicPoolClient.d.ts +120 -0
  16. package/dist/clients/CubicPoolClient.d.ts.map +1 -0
  17. package/dist/clients/CubicPoolClient.js +687 -0
  18. package/dist/clients/CubicPoolClient.js.map +1 -0
  19. package/dist/clients/PoolFactoryClient.d.ts +53 -0
  20. package/dist/clients/PoolFactoryClient.d.ts.map +1 -0
  21. package/dist/clients/PoolFactoryClient.js +91 -0
  22. package/dist/clients/PoolFactoryClient.js.map +1 -0
  23. package/dist/clients/RpcClient.d.ts +49 -0
  24. package/dist/clients/RpcClient.d.ts.map +1 -0
  25. package/dist/clients/RpcClient.js +135 -0
  26. package/dist/clients/RpcClient.js.map +1 -0
  27. package/dist/clients/SingleTokenDepositClient.d.ts +67 -0
  28. package/dist/clients/SingleTokenDepositClient.d.ts.map +1 -0
  29. package/dist/clients/SingleTokenDepositClient.js +105 -0
  30. package/dist/clients/SingleTokenDepositClient.js.map +1 -0
  31. package/dist/clients/contract-instructions.d.ts +24 -0
  32. package/dist/clients/contract-instructions.d.ts.map +1 -0
  33. package/dist/clients/contract-instructions.js +130 -0
  34. package/dist/clients/contract-instructions.js.map +1 -0
  35. package/dist/clients/index.d.ts +10 -0
  36. package/dist/clients/index.d.ts.map +1 -0
  37. package/dist/clients/index.js +26 -0
  38. package/dist/clients/index.js.map +1 -0
  39. package/dist/clients/quote-math.d.ts +15 -0
  40. package/dist/clients/quote-math.d.ts.map +1 -0
  41. package/dist/clients/quote-math.js +98 -0
  42. package/dist/clients/quote-math.js.map +1 -0
  43. package/dist/clients/tx-builders.d.ts +231 -0
  44. package/dist/clients/tx-builders.d.ts.map +1 -0
  45. package/dist/clients/tx-builders.js +861 -0
  46. package/dist/clients/tx-builders.js.map +1 -0
  47. package/dist/clients/versioned.d.ts +34 -0
  48. package/dist/clients/versioned.d.ts.map +1 -0
  49. package/dist/clients/versioned.js +55 -0
  50. package/dist/clients/versioned.js.map +1 -0
  51. package/dist/config/index.d.ts +65 -0
  52. package/dist/config/index.d.ts.map +1 -0
  53. package/dist/config/index.js +75 -0
  54. package/dist/config/index.js.map +1 -0
  55. package/dist/config/networks.d.ts +12 -0
  56. package/dist/config/networks.d.ts.map +1 -0
  57. package/dist/config/networks.js +51 -0
  58. package/dist/config/networks.js.map +1 -0
  59. package/dist/config/tokens.d.ts +19 -0
  60. package/dist/config/tokens.d.ts.map +1 -0
  61. package/dist/config/tokens.js +43 -0
  62. package/dist/config/tokens.js.map +1 -0
  63. package/dist/idl/cubic_pool.json +4203 -0
  64. package/dist/idl/index.d.ts +1769 -0
  65. package/dist/idl/index.d.ts.map +1 -0
  66. package/dist/idl/index.js +18 -0
  67. package/dist/idl/index.js.map +1 -0
  68. package/dist/idl/protocol_admin.json +2615 -0
  69. package/dist/idl/single_token_liquidity.json +1121 -0
  70. package/dist/index.d.ts +75 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +206 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/math/cubicMath.d.ts +40 -0
  75. package/dist/math/cubicMath.d.ts.map +1 -0
  76. package/dist/math/cubicMath.js +82 -0
  77. package/dist/math/cubicMath.js.map +1 -0
  78. package/dist/math/fixedPoint.d.ts +19 -0
  79. package/dist/math/fixedPoint.d.ts.map +1 -0
  80. package/dist/math/fixedPoint.js +86 -0
  81. package/dist/math/fixedPoint.js.map +1 -0
  82. package/dist/math/index.d.ts +9 -0
  83. package/dist/math/index.d.ts.map +1 -0
  84. package/dist/math/index.js +30 -0
  85. package/dist/math/index.js.map +1 -0
  86. package/dist/math/logExp.d.ts +6 -0
  87. package/dist/math/logExp.d.ts.map +1 -0
  88. package/dist/math/logExp.js +68 -0
  89. package/dist/math/logExp.js.map +1 -0
  90. package/dist/math/lpLoss.d.ts +44 -0
  91. package/dist/math/lpLoss.d.ts.map +1 -0
  92. package/dist/math/lpLoss.js +103 -0
  93. package/dist/math/lpLoss.js.map +1 -0
  94. package/dist/math/maxSelloff.d.ts +164 -0
  95. package/dist/math/maxSelloff.d.ts.map +1 -0
  96. package/dist/math/maxSelloff.js +397 -0
  97. package/dist/math/maxSelloff.js.map +1 -0
  98. package/dist/math/singleToken.d.ts +54 -0
  99. package/dist/math/singleToken.d.ts.map +1 -0
  100. package/dist/math/singleToken.js +188 -0
  101. package/dist/math/singleToken.js.map +1 -0
  102. package/dist/math/slippage.d.ts +13 -0
  103. package/dist/math/slippage.d.ts.map +1 -0
  104. package/dist/math/slippage.js +44 -0
  105. package/dist/math/slippage.js.map +1 -0
  106. package/dist/math/surgeFee.d.ts +24 -0
  107. package/dist/math/surgeFee.d.ts.map +1 -0
  108. package/dist/math/surgeFee.js +85 -0
  109. package/dist/math/surgeFee.js.map +1 -0
  110. package/dist/math/weightedMath.d.ts +20 -0
  111. package/dist/math/weightedMath.d.ts.map +1 -0
  112. package/dist/math/weightedMath.js +66 -0
  113. package/dist/math/weightedMath.js.map +1 -0
  114. package/dist/parsers/borsh.d.ts +28 -0
  115. package/dist/parsers/borsh.d.ts.map +1 -0
  116. package/dist/parsers/borsh.js +104 -0
  117. package/dist/parsers/borsh.js.map +1 -0
  118. package/dist/parsers/contracts.d.ts +26 -0
  119. package/dist/parsers/contracts.d.ts.map +1 -0
  120. package/dist/parsers/contracts.js +62 -0
  121. package/dist/parsers/contracts.js.map +1 -0
  122. package/dist/parsers/events.d.ts +3 -0
  123. package/dist/parsers/events.d.ts.map +1 -0
  124. package/dist/parsers/events.js +281 -0
  125. package/dist/parsers/events.js.map +1 -0
  126. package/dist/parsers/index.d.ts +6 -0
  127. package/dist/parsers/index.d.ts.map +1 -0
  128. package/dist/parsers/index.js +22 -0
  129. package/dist/parsers/index.js.map +1 -0
  130. package/dist/parsers/mintAccount.d.ts +24 -0
  131. package/dist/parsers/mintAccount.d.ts.map +1 -0
  132. package/dist/parsers/mintAccount.js +27 -0
  133. package/dist/parsers/mintAccount.js.map +1 -0
  134. package/dist/parsers/poolAccount.d.ts +141 -0
  135. package/dist/parsers/poolAccount.d.ts.map +1 -0
  136. package/dist/parsers/poolAccount.js +224 -0
  137. package/dist/parsers/poolAccount.js.map +1 -0
  138. package/dist/types/contracts.d.ts +1340 -0
  139. package/dist/types/contracts.d.ts.map +1 -0
  140. package/dist/types/contracts.js +3 -0
  141. package/dist/types/contracts.js.map +1 -0
  142. package/dist/types/events.d.ts +172 -0
  143. package/dist/types/events.d.ts.map +1 -0
  144. package/dist/types/events.js +3 -0
  145. package/dist/types/events.js.map +1 -0
  146. package/dist/types/index.d.ts +6 -0
  147. package/dist/types/index.d.ts.map +1 -0
  148. package/dist/types/index.js +22 -0
  149. package/dist/types/index.js.map +1 -0
  150. package/dist/types/pool.d.ts +149 -0
  151. package/dist/types/pool.d.ts.map +1 -0
  152. package/dist/types/pool.js +3 -0
  153. package/dist/types/pool.js.map +1 -0
  154. package/dist/types/result.d.ts +24 -0
  155. package/dist/types/result.d.ts.map +1 -0
  156. package/dist/types/result.js +11 -0
  157. package/dist/types/result.js.map +1 -0
  158. package/dist/types/tx.d.ts +261 -0
  159. package/dist/types/tx.d.ts.map +1 -0
  160. package/dist/types/tx.js +3 -0
  161. package/dist/types/tx.js.map +1 -0
  162. package/dist/utils/errors.d.ts +44 -0
  163. package/dist/utils/errors.d.ts.map +1 -0
  164. package/dist/utils/errors.js +192 -0
  165. package/dist/utils/errors.js.map +1 -0
  166. package/dist/utils/extensions.d.ts +98 -0
  167. package/dist/utils/extensions.d.ts.map +1 -0
  168. package/dist/utils/extensions.js +187 -0
  169. package/dist/utils/extensions.js.map +1 -0
  170. package/dist/utils/index.d.ts +5 -0
  171. package/dist/utils/index.d.ts.map +1 -0
  172. package/dist/utils/index.js +21 -0
  173. package/dist/utils/index.js.map +1 -0
  174. package/dist/utils/pda.d.ts +8 -0
  175. package/dist/utils/pda.d.ts.map +1 -0
  176. package/dist/utils/pda.js +27 -0
  177. package/dist/utils/pda.js.map +1 -0
  178. package/dist/utils/retry.d.ts +22 -0
  179. package/dist/utils/retry.d.ts.map +1 -0
  180. package/dist/utils/retry.js +62 -0
  181. package/dist/utils/retry.js.map +1 -0
  182. package/package.json +54 -0
  183. package/src/clients/AdminClient.ts +608 -0
  184. package/src/clients/CofferBackendClient.ts +1413 -0
  185. package/src/clients/CubicPoolClient.ts +719 -0
  186. package/src/clients/PoolFactoryClient.ts +110 -0
  187. package/src/clients/RpcClient.ts +195 -0
  188. package/src/clients/SingleTokenDepositClient.ts +143 -0
  189. package/src/clients/contract-instructions.ts +115 -0
  190. package/src/clients/index.ts +9 -0
  191. package/src/clients/quote-math.ts +81 -0
  192. package/src/clients/tx-builders.ts +1096 -0
  193. package/src/clients/versioned.ts +80 -0
  194. package/src/config/index.ts +111 -0
  195. package/src/config/networks.ts +71 -0
  196. package/src/config/tokens.ts +52 -0
  197. package/src/idl/cubic_pool.json +4203 -0
  198. package/src/idl/index.ts +13 -0
  199. package/src/idl/protocol_admin.json +2615 -0
  200. package/src/idl/single_token_liquidity.json +1121 -0
  201. package/src/index.ts +262 -0
  202. package/src/math/cubicMath.ts +92 -0
  203. package/src/math/fixedPoint.ts +71 -0
  204. package/src/math/index.ts +13 -0
  205. package/src/math/logExp.ts +61 -0
  206. package/src/math/lpLoss.ts +160 -0
  207. package/src/math/maxSelloff.ts +564 -0
  208. package/src/math/singleToken.ts +251 -0
  209. package/src/math/slippage.ts +38 -0
  210. package/src/math/surgeFee.ts +101 -0
  211. package/src/math/weightedMath.ts +64 -0
  212. package/src/parsers/borsh.ts +106 -0
  213. package/src/parsers/contracts.ts +64 -0
  214. package/src/parsers/events.ts +275 -0
  215. package/src/parsers/index.ts +5 -0
  216. package/src/parsers/mintAccount.ts +44 -0
  217. package/src/parsers/poolAccount.ts +372 -0
  218. package/src/types/contracts.ts +238 -0
  219. package/src/types/events.ts +198 -0
  220. package/src/types/index.ts +5 -0
  221. package/src/types/pool.ts +147 -0
  222. package/src/types/result.ts +51 -0
  223. package/src/types/tx.ts +278 -0
  224. package/src/utils/errors.ts +210 -0
  225. package/src/utils/extensions.ts +196 -0
  226. package/src/utils/index.ts +4 -0
  227. package/src/utils/pda.ts +58 -0
  228. package/src/utils/retry.ts +85 -0
@@ -0,0 +1,120 @@
1
+ import { PublicKey, Commitment } from "@solana/web3.js";
2
+ import BN from "bn.js";
3
+ import { CofferConfig } from "../config";
4
+ import { PoolInfo } from "../types/pool";
5
+ import { SdkResult } from "../types/result";
6
+ import { AddLiquidityQuote, SwapQuote, SingleTokenDepositQuote } from "../types/tx";
7
+ import { CubicPoolEvent } from "../types/events";
8
+ import { RpcClient } from "./RpcClient";
9
+ import { SelloffWindowStatus } from "../math/maxSelloff";
10
+ import { AddLiquidityParams, BuiltTx, RemoveLiquidityParams, SingleTokenDepositParams, SwapParams } from "../types/tx";
11
+ import { SingleTokenDepositClient } from "./SingleTokenDepositClient";
12
+ export interface CubicPoolClientParams {
13
+ config: CofferConfig;
14
+ poolAddress: PublicKey;
15
+ rpc?: RpcClient | {
16
+ endpoint?: string;
17
+ endpoints?: string[];
18
+ fallbackEndpoints?: string[];
19
+ apiKey?: string;
20
+ commitment?: Commitment;
21
+ timeoutMs?: number;
22
+ };
23
+ }
24
+ /**
25
+ * Per-pool client. Fetch the state with `sync()`, then call any of the
26
+ * quote / buildTx methods off the cached snapshot.
27
+ */
28
+ export declare class CubicPoolClient {
29
+ readonly config: CofferConfig;
30
+ readonly poolAddress: PublicKey;
31
+ readonly rpc: RpcClient;
32
+ private cache;
33
+ /** Raw decoded account from the last `sync()`; holds per-token window data. */
34
+ private rawAccount;
35
+ constructor(params: CubicPoolClientParams);
36
+ /** Last-fetched pool state. `undefined` before first `sync()`. */
37
+ getCached(): PoolInfo | undefined;
38
+ /**
39
+ * Fetch and decode the pool account + BPT mint + per-token mint decimals.
40
+ * Safe to call repeatedly; subsequent calls replace the cache.
41
+ */
42
+ sync(): Promise<SdkResult<PoolInfo>>;
43
+ /** Derived helper PDA for this pool (used by single-token-deposit). */
44
+ helperPda(): PublicKey;
45
+ /**
46
+ * Quote a swap. Requires the cache to be populated (call `sync()` first).
47
+ * Returns exact on-chain math result + spot bound + price impact +
48
+ * slippage-derived minAmountOut.
49
+ */
50
+ quoteSwap(tokenInIndex: number, tokenOutIndex: number, amountIn: BN, slippageHundredthsBps?: number, nowSeconds?: number): SdkResult<SwapQuote>;
51
+ /**
52
+ * Read-only status of a token's max-selloff window at `now`
53
+ * (default: current unix seconds). Requires a prior `sync()`.
54
+ */
55
+ getSelloffWindowStatus(tokenIndex: number, now?: number): SdkResult<SelloffWindowStatus>;
56
+ /**
57
+ * Quote a single-token deposit: split amountIn by W-based shares, quote
58
+ * each swap leg, then execute the helper cap and proportional-join math.
59
+ * `helperBalances` supplies existing helper ATA holdings (defaults to zero).
60
+ * Pass them when the helper contains donations or dust; all leftovers are refunded.
61
+ */
62
+ quoteSingleTokenDeposit(tokenInIndex: number, amountIn: BN, slippageHundredthsBps?: number, nowSeconds?: number, helperBalances?: BN[]): SdkResult<SingleTokenDepositQuote>;
63
+ /** Seed deposit: creator-only, exact amounts, BPT derived from virtual reserves. */
64
+ quoteSeedDeposit(user: PublicKey, tokenAmounts: BN[], slippageHundredthsBps?: number): SdkResult<AddLiquidityQuote>;
65
+ /**
66
+ * Proportional-join quote. `tokenAmounts` is a CEILING (v5.1, audit
67
+ * M-4 / I-1): the program takes the largest strictly-proportional basket
68
+ * that fits inside it and leaves the rest in the wallet. This returns the
69
+ * basket it will actually pull, the BPT it will mint, and a
70
+ * slippage-derived `minimumBptAmount` to pass to `buildAddLiquidityTx`.
71
+ *
72
+ * Not applicable to the seed deposit (BPT supply == 0): the program
73
+ * mints invariant-based BPT there and takes the full amounts.
74
+ */
75
+ quoteAddLiquidity(tokenAmounts: BN[], slippageHundredthsBps?: number): SdkResult<AddLiquidityQuote>;
76
+ /** Proportional-withdraw quote for a given BPT amount. */
77
+ quoteRemove(bptIn: BN): SdkResult<{
78
+ tokenOuts: BN[];
79
+ effectiveBptIn: BN;
80
+ }>;
81
+ /** Build a swap transaction. Requires `sync()` first. */
82
+ buildSwapTx(params: SwapParams): SdkResult<BuiltTx>;
83
+ /** Build a proportional add-liquidity transaction. Requires `sync()` first. */
84
+ buildAddLiquidityTx(params: AddLiquidityParams): SdkResult<BuiltTx>;
85
+ /** Build a proportional remove-liquidity transaction. Requires `sync()` first. */
86
+ buildRemoveLiquidityTx(params: RemoveLiquidityParams): SdkResult<BuiltTx>;
87
+ /**
88
+ * Build a single-token deposit transaction (swaps + add_liquidity via the
89
+ * helper program + BPT forward to user). Requires `sync()` first.
90
+ */
91
+ buildSingleTokenDepositTx(params: SingleTokenDepositParams): SdkResult<BuiltTx>;
92
+ /**
93
+ * Single-token deposit split into `{ setup, deposit }` transactions.
94
+ *
95
+ * Required for pools beyond a handful of tokens: the ATA creates and the
96
+ * zap compete for the same 64-frame instruction-trace budget, and at
97
+ * N=10 the zap alone uses 52 of them. Send `setup` (idempotent, safe to
98
+ * repeat), wait for confirmation, then send `deposit` compiled against
99
+ * the pool's ALT via `compileBuiltTx`.
100
+ */
101
+ buildSingleTokenDepositTxs(params: SingleTokenDepositParams): SdkResult<{
102
+ setup: BuiltTx | null;
103
+ deposit: BuiltTx;
104
+ }>;
105
+ /** Proxy into the dedicated SingleTokenDepositClient for consumers who
106
+ * want the quote/build methods exposed on a focused object. */
107
+ get singleTokenDeposit(): SingleTokenDepositClient;
108
+ private _std?;
109
+ /** Parse logs from a confirmed transaction into typed events. */
110
+ parseEventsFromLogs(logs: string[]): CubicPoolEvent[];
111
+ /**
112
+ * Refuse when any of `indices` (or every token, for `"all"`) has an
113
+ * unsupported Token-2022 extension. The program would revert inside the
114
+ * token program on transfer, so failing here saves the user a fee.
115
+ */
116
+ private requireSupported;
117
+ private validateDepositWindows;
118
+ private requireCache;
119
+ }
120
+ //# sourceMappingURL=CubicPoolClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CubicPoolClient.d.ts","sourceRoot":"","sources":["../../src/clients/CubicPoolClient.ts"],"names":[],"mappings":"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"}