@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,281 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseCubicPoolEvents = parseCubicPoolEvents;
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ const bn_js_1 = __importDefault(require("bn.js"));
9
+ const borsh_1 = require("./borsh");
10
+ const contracts_1 = require("./contracts");
11
+ /**
12
+ * Anchor event log format (base64-encoded after `Program data:`):
13
+ * [ 8-byte discriminator | borsh-encoded event struct ]
14
+ *
15
+ * Discriminators for cubic-pool and single-token-liquidity are hard-coded
16
+ * here from the generated IDL. Never guess from event name — the Anchor
17
+ * macro actually uses `sha256("event:<Name>")[0..8]`, but for robustness
18
+ * we pin the bytes.
19
+ */
20
+ // Cubic-pool event discriminators (from target/idl/cubic_pool.json):
21
+ const DISC = {
22
+ PoolInitialized: Buffer.from([100, 118, 173, 87, 12, 198, 254, 229]),
23
+ Swap: Buffer.from([81, 108, 227, 190, 205, 208, 10, 196]),
24
+ LiquidityAdded: Buffer.from([154, 26, 221, 108, 238, 64, 217, 161]),
25
+ LiquidityRemoved: Buffer.from([225, 105, 216, 39, 124, 116, 169, 189]),
26
+ ProtocolFeesCollected: Buffer.from([165, 34, 125, 155, 15, 86, 99, 191]),
27
+ SwapFeeRateUpdated: Buffer.from([101, 132, 24, 255, 91, 253, 227, 101]),
28
+ ProtocolFeeRateUpdated: Buffer.from([189, 56, 7, 65, 0, 95, 192, 6]),
29
+ PoolEnabledUpdated: Buffer.from([101, 47, 3, 240, 197, 181, 236, 142]),
30
+ SwapsEnabledUpdated: Buffer.from([55, 116, 118, 138, 102, 26, 227, 223]),
31
+ DebugLiquidityWithdrawn: Buffer.from([174, 59, 149, 22, 135, 129, 129, 83]),
32
+ PoolStateLog: Buffer.from([59, 254, 237, 111, 163, 10, 140, 224]),
33
+ PoolInfo: Buffer.from([207, 20, 87, 97, 251, 212, 234, 45]),
34
+ BannedExtensionsUpdated: Buffer.from([107, 126, 13, 149, 182, 108, 139, 202]),
35
+ MaxSelloffWindowAdvanced: Buffer.from([229, 227, 163, 30, 22, 183, 78, 57]),
36
+ // Stld:
37
+ SingleTokenDeposit: Buffer.from([215, 54, 137, 104, 219, 39, 164, 235]),
38
+ };
39
+ function parseCubicPoolEvents(logs) {
40
+ const out = [];
41
+ for (const line of logs) {
42
+ const m = line.match(/^Program data:\s+(.+)$/);
43
+ if (!m)
44
+ continue;
45
+ const buf = Buffer.from(m[1], "base64");
46
+ if (buf.length < 8)
47
+ continue;
48
+ const disc = buf.slice(0, 8);
49
+ const payload = buf.slice(8);
50
+ const name = matchDiscriminator(disc);
51
+ if (!name) {
52
+ const current = (0, contracts_1.decodeContractEvent)(m[1]);
53
+ if (current) {
54
+ try {
55
+ out.push(camelEvent(current));
56
+ }
57
+ catch (error) {
58
+ out.push({ kind: "Unknown", name: current.kind, data: { error: String(error), payload: payload.toString("base64") } });
59
+ }
60
+ continue;
61
+ }
62
+ out.push({ kind: "Unknown", name: "unknown", data: { disc: disc.toString("base64"), payload: payload.toString("base64") } });
63
+ continue;
64
+ }
65
+ try {
66
+ const ev = decodeEvent(name, payload);
67
+ if (ev)
68
+ out.push(ev);
69
+ }
70
+ catch (e) {
71
+ out.push({
72
+ kind: "Unknown",
73
+ name,
74
+ data: { error: String(e), payload: payload.toString("base64") },
75
+ });
76
+ }
77
+ }
78
+ return out;
79
+ }
80
+ function matchDiscriminator(d) {
81
+ for (const [name, bytes] of Object.entries(DISC)) {
82
+ if (bytes.equals(d))
83
+ return name;
84
+ }
85
+ return null;
86
+ }
87
+ function decodeEvent(name, buf) {
88
+ const r = new borsh_1.BorshReader(buf);
89
+ switch (name) {
90
+ case "Swap": {
91
+ // The deployed without-SF event ends with timestamp, surge_fee_amount.
92
+ // Optional trailing transfer-fee fields are retained only for decoding
93
+ // logs from other historical builds; they do not imply mint support.
94
+ const pool = r.pubkey();
95
+ const user = r.pubkey();
96
+ const tokenIn = r.pubkey();
97
+ const tokenOut = r.pubkey();
98
+ const amountIn = r.u64();
99
+ const amountOut = r.u64();
100
+ const feeAmount = r.u64();
101
+ const protocolFeeAmount = r.u64();
102
+ const timestamp = r.i64().toNumber();
103
+ const surgeFeeAmount = r.u64();
104
+ // Absent in the deployed without-SF ABI: expose zero for compatibility.
105
+ const transferFeeIn = r.remaining() >= 8 ? r.u64() : new bn_js_1.default(0);
106
+ const transferFeeOut = r.remaining() >= 8 ? r.u64() : new bn_js_1.default(0);
107
+ return {
108
+ kind: "Swap",
109
+ pool,
110
+ user,
111
+ tokenIn,
112
+ tokenOut,
113
+ amountIn,
114
+ amountOut,
115
+ feeAmount,
116
+ protocolFeeAmount,
117
+ surgeFeeAmount,
118
+ timestamp,
119
+ transferFeeIn,
120
+ transferFeeOut,
121
+ };
122
+ }
123
+ case "LiquidityAdded": {
124
+ const pool = r.pubkey();
125
+ const user = r.pubkey();
126
+ const tokenAmounts = r.vecU64();
127
+ const bptAmount = r.u64();
128
+ const timestamp = r.i64().toNumber();
129
+ return { kind: "LiquidityAdded", pool, user, tokenAmounts, bptAmount, timestamp };
130
+ }
131
+ case "LiquidityRemoved": {
132
+ const pool = r.pubkey();
133
+ const user = r.pubkey();
134
+ const bptAmount = r.u64();
135
+ const tokenAmounts = r.vecU64();
136
+ const timestamp = r.i64().toNumber();
137
+ return { kind: "LiquidityRemoved", pool, user, bptAmount, tokenAmounts, timestamp };
138
+ }
139
+ case "ProtocolFeesCollected": {
140
+ const pool = r.pubkey();
141
+ const authority = r.pubkey();
142
+ const tokenAmounts = r.vecU64();
143
+ const timestamp = r.i64().toNumber();
144
+ return { kind: "ProtocolFeesCollected", pool, authority, tokenAmounts, timestamp };
145
+ }
146
+ case "PoolInitialized": {
147
+ const pool = r.pubkey();
148
+ const config = r.pubkey();
149
+ const tokenCount = r.u8();
150
+ const bptMint = r.pubkey();
151
+ const timestamp = r.i64().toNumber();
152
+ // Appended: the effective banned-extensions bitmap the pool's tokens
153
+ // were vetted against at creation. Guarded for older logs.
154
+ const bannedExtensions = r.remaining() >= 8 ? r.u64() : new bn_js_1.default(0);
155
+ return { kind: "PoolInitialized", pool, config, tokenCount, bptMint, timestamp, bannedExtensions };
156
+ }
157
+ case "PoolEnabledUpdated": {
158
+ const pool = r.pubkey();
159
+ const authority = r.pubkey();
160
+ const oldValue = r.bool();
161
+ const newValue = r.bool();
162
+ const timestamp = r.i64().toNumber();
163
+ return { kind: "PoolEnabledUpdated", pool, authority, oldValue, newValue, timestamp };
164
+ }
165
+ case "SwapsEnabledUpdated": {
166
+ const pool = r.pubkey();
167
+ const authority = r.pubkey();
168
+ const oldValue = r.bool();
169
+ const newValue = r.bool();
170
+ const timestamp = r.i64().toNumber();
171
+ return { kind: "SwapsEnabledUpdated", pool, authority, oldValue, newValue, timestamp };
172
+ }
173
+ case "SingleTokenDeposit": {
174
+ // Verified against `SingleTokenDeposit` in
175
+ // src/idl/single_token_liquidity.json:
176
+ // helper, pool, user, token_in_index, amount_in, allocations,
177
+ // deposited_amounts, bpt_received, dust_refunded, timestamp
178
+ //
179
+ // Two fixes vs. the previous decoder:
180
+ // 1. There is NO `slippage_hundredths_bps: u32` field. The per-call
181
+ // slippage argument was removed from `deposit_single_token` (the
182
+ // single `minimum_bpt_amount` guard replaced it) and the event
183
+ // field went with it. Reading a phantom u32 here shifted every
184
+ // later field by 4 bytes.
185
+ // 2. `dust_refunded` is `Vec<u64>` (index-aligned with the pool's
186
+ // tokens), not a scalar `u64`.
187
+ const helper = r.pubkey();
188
+ const pool = r.pubkey();
189
+ const user = r.pubkey();
190
+ const tokenInIndex = r.u8();
191
+ const amountIn = r.u64();
192
+ const allocations = r.vecU64();
193
+ const depositedAmounts = r.vecU64();
194
+ const bptReceived = r.u64();
195
+ const dustRefunded = r.vecU64();
196
+ const timestamp = r.i64().toNumber();
197
+ return {
198
+ kind: "SingleTokenDeposit",
199
+ helper,
200
+ pool,
201
+ user,
202
+ tokenInIndex,
203
+ amountIn,
204
+ allocations,
205
+ depositedAmounts,
206
+ bptReceived,
207
+ dustRefunded,
208
+ timestamp,
209
+ };
210
+ }
211
+ case "PoolStateLog": {
212
+ const pool = r.pubkey();
213
+ const virtualBalances = r.vecU64();
214
+ const actualBalances = r.vecU64();
215
+ const protocolFeesOwed = r.vecU64();
216
+ const timestamp = r.i64().toNumber();
217
+ return { kind: "PoolStateLog", pool, virtualBalances, actualBalances, protocolFeesOwed, timestamp };
218
+ }
219
+ case "MaxSelloffWindowAdvanced": {
220
+ const pool = r.pubkey();
221
+ const tokenIndex = r.u8();
222
+ const effectiveSelloff = r.u64();
223
+ const maxSelloffCap = r.u64();
224
+ const vbSnapshot = r.u64();
225
+ const previousSelloff = r.u64();
226
+ const currentSelloff = r.u64();
227
+ const windowStartTimestamp = r.i64().toNumber();
228
+ const timestamp = r.i64().toNumber();
229
+ return {
230
+ kind: "MaxSelloffWindowAdvanced",
231
+ pool,
232
+ tokenIndex,
233
+ effectiveSelloff,
234
+ maxSelloffCap,
235
+ vbSnapshot,
236
+ previousSelloff,
237
+ currentSelloff,
238
+ windowStartTimestamp,
239
+ timestamp,
240
+ };
241
+ }
242
+ case "BannedExtensionsUpdated": {
243
+ const config = r.pubkey();
244
+ const authority = r.pubkey();
245
+ const oldValue = r.u64();
246
+ const newValue = r.u64();
247
+ const timestamp = r.i64().toNumber();
248
+ // Appended in v5.1 alongside `set_banned_extensions`' new
249
+ // `hard_banned_extensions` argument. Guarded for older logs.
250
+ const oldHardValue = r.remaining() >= 8 ? r.u64() : new bn_js_1.default(0);
251
+ const newHardValue = r.remaining() >= 8 ? r.u64() : new bn_js_1.default(0);
252
+ return {
253
+ kind: "BannedExtensionsUpdated",
254
+ config,
255
+ authority,
256
+ oldValue,
257
+ newValue,
258
+ timestamp,
259
+ oldHardValue,
260
+ newHardValue,
261
+ };
262
+ }
263
+ // Decode the remaining current events through the complete shipped ABI.
264
+ case "SwapFeeRateUpdated":
265
+ case "ProtocolFeeRateUpdated":
266
+ case "DebugLiquidityWithdrawn":
267
+ case "PoolInfo":
268
+ const current = (0, contracts_1.decodeContractEvent)(Buffer.concat([DISC[name], buf]).toString("base64"));
269
+ return current ? camelEvent(current) : { kind: "Unknown", name, data: { raw: buf.toString("base64") } };
270
+ }
271
+ }
272
+ void web3_js_1.PublicKey; // keep import used by types above via type inference
273
+ function camelEvent(event) {
274
+ const fields = { kind: event.kind };
275
+ for (const [key, value] of Object.entries(event.data)) {
276
+ const name = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
277
+ fields[name] = key === "timestamp" && bn_js_1.default.isBN(value) ? value.toNumber() : value;
278
+ }
279
+ return fields;
280
+ }
281
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/parsers/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from "./poolAccount";
2
+ export * from "./mintAccount";
3
+ export * from "./events";
4
+ export * from "./borsh";
5
+ export * from "./contracts";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./poolAccount"), exports);
18
+ __exportStar(require("./mintAccount"), exports);
19
+ __exportStar(require("./events"), exports);
20
+ __exportStar(require("./borsh"), exports);
21
+ __exportStar(require("./contracts"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B"}
@@ -0,0 +1,24 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import BN from "bn.js";
3
+ /**
4
+ * SPL Token (or Token-2022) Mint parser. Reads the 82-byte base layout and,
5
+ * for Token-2022 mints, the TLV extension list (discriminants only).
6
+ *
7
+ * Layout:
8
+ * 0..36 COption<Pubkey> mintAuthority (4 bytes tag + 32 bytes pubkey)
9
+ * 36..44 u64 supply
10
+ * 44..45 u8 decimals
11
+ * 45..46 u8 isInitialized
12
+ * 46..82 COption<Pubkey> freezeAuthority
13
+ */
14
+ export interface RawMintAccount {
15
+ mintAuthority: PublicKey | null;
16
+ supply: BN;
17
+ decimals: number;
18
+ isInitialized: boolean;
19
+ freezeAuthority: PublicKey | null;
20
+ /** Token-2022 extension discriminants; `[]` for classic SPL mints. */
21
+ extensions: number[];
22
+ }
23
+ export declare function decodeMintAccount(data: Buffer): RawMintAccount;
24
+ //# sourceMappingURL=mintAccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mintAccount.d.ts","sourceRoot":"","sources":["../../src/parsers/mintAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AAGvB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,EAAE,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,sEAAsE;IACtE,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAkB9D"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.decodeMintAccount = decodeMintAccount;
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ const bn_js_1 = __importDefault(require("bn.js"));
9
+ const extensions_1 = require("../utils/extensions");
10
+ function decodeMintAccount(data) {
11
+ const extensions = (0, extensions_1.parseMintExtensions)(data);
12
+ const mintAuthTag = data.readUInt32LE(0);
13
+ if (mintAuthTag !== 0 && mintAuthTag !== 1) {
14
+ throw new Error(`decodeMintAccount: invalid mint-authority option ${mintAuthTag}`);
15
+ }
16
+ const mintAuthority = mintAuthTag === 0 ? null : new web3_js_1.PublicKey(data.slice(4, 36));
17
+ const supply = new bn_js_1.default(data.slice(36, 44), "le");
18
+ const decimals = data.readUInt8(44);
19
+ const isInitialized = data.readUInt8(45) === 1;
20
+ const freezeTag = data.readUInt32LE(46);
21
+ if (freezeTag !== 0 && freezeTag !== 1) {
22
+ throw new Error(`decodeMintAccount: invalid freeze-authority option ${freezeTag}`);
23
+ }
24
+ const freezeAuthority = freezeTag === 0 ? null : new web3_js_1.PublicKey(data.slice(50, 82));
25
+ return { mintAuthority, supply, decimals, isInitialized, freezeAuthority, extensions };
26
+ }
27
+ //# sourceMappingURL=mintAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mintAccount.js","sourceRoot":"","sources":["../../src/parsers/mintAccount.ts"],"names":[],"mappings":";;;;;AAyBA,8CAkBC;AA3CD,6CAA4C;AAC5C,kDAAuB;AACvB,oDAA0D;AAuB1D,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,MAAM,UAAU,GAAG,IAAA,gCAAmB,EAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,WAAW,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,oDAAoD,WAAW,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,aAAa,GACjB,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,mBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,eAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,sDAAsD,SAAS,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,eAAe,GACnB,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,mBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzF,CAAC"}
@@ -0,0 +1,141 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import BN from "bn.js";
3
+ /**
4
+ * Raw binary layout of CubicPool **v5** (see
5
+ * `contracts/programs/cubic-pool/src/state/cubic_pool.rs`).
6
+ *
7
+ * v4 reorganised per-token data from six parallel arrays into a single
8
+ * `tokens: [TokenSlot; 10]` array (each slot = `AssetConfig` +
9
+ * `AssetDynamics`). For backwards compatibility with downstream
10
+ * consumers (`CubicPoolClient.sync()` and similar), this decoder still
11
+ * exposes the parallel-array shape, plus the new max-selloff and admin
12
+ * fields.
13
+ *
14
+ * v5.1 layout deltas (all carved out of `reserved`, total size unchanged
15
+ * at 1683 — every pre-existing field keeps its byte offset):
16
+ * - `AssetConfig.reserved[3]` → `variable_fee_slope_mid_pct: u16` +
17
+ * `variable_fee_kink_pct: u8`. Slot stays 88 bytes.
18
+ * - `CubicPool`: `range_manager_max_leverage_bps: u32` and
19
+ * `range_manager_min_leverage_bps: u32` appended after
20
+ * `banned_extensions`; trailing `reserved` shrank [u8;24] → [u8;16].
21
+ *
22
+ * Pools written by the pre-v5.1 program decode these new fields as `0`,
23
+ * which is the back-compatible reading (curve has no kink, leverage band
24
+ * disabled).
25
+ *
26
+ * We decode manually to avoid bundling an Anchor `Program` instance into
27
+ * the SDK — both frontend and backend consume the SDK, and pulling the
28
+ * full Anchor runtime is heavy.
29
+ */
30
+ export interface RawPoolAccount {
31
+ config: PublicKey;
32
+ bump: number;
33
+ tokenCount: number;
34
+ poolId: BN;
35
+ swapFeeRate: number;
36
+ protocolFeeRate: number;
37
+ createdAt: BN;
38
+ poolEnabled: boolean;
39
+ swapsEnabled: boolean;
40
+ poolAdmin: PublicKey;
41
+ pendingPoolAdmin: PublicKey;
42
+ rangeManager: PublicKey;
43
+ rangeManagerEnabled: boolean;
44
+ /** Percent-of-current-value cap, `PERCENT_SCALE` units (10_000 = 100%). */
45
+ rangeManagerMaxVbChangePct: number;
46
+ rangeManagerMaxWeightChangePct: number;
47
+ rangeManagerMinUpdateIntervalSecs: number;
48
+ rangeManagerLastUpdated: BN;
49
+ /**
50
+ * Absolute UPPER bound on `virtual_balance / actual_balance` the range
51
+ * manager may leave a token at, in basis points (10_000 = 1.0×).
52
+ * `0` ⇒ band disabled. Pools written before v5.1 read `0`.
53
+ *
54
+ * The per-update percentage caps *velocity*; this caps *distance*.
55
+ * Breaching it reverts with `RangeManagerLeverageBandExceeded` (6062).
56
+ */
57
+ rangeManagerMaxLeverageBps: number;
58
+ /**
59
+ * Absolute LOWER bound on `virtual_balance / actual_balance`, same units.
60
+ * `0` ⇒ floor disabled. Pools written before v5.1 read `0`.
61
+ */
62
+ rangeManagerMinLeverageBps: number;
63
+ tokenMints: PublicKey[];
64
+ tokenPrograms: PublicKey[];
65
+ normalizedWeights: BN[];
66
+ /**
67
+ * Max cumulative sell volume per window, as a percent of the token's
68
+ * virtual balance (`PERCENT_SCALE` units; 10_000 = 100%). `0` disables.
69
+ */
70
+ maxSelloffPct: number[];
71
+ maxSelloffPeriodLength: number[];
72
+ /** Variable surge-fee curve, per token (`PERCENT_SCALE` units). */
73
+ variableFeeThresholdPct: number[];
74
+ variableFeeSlopeLowPct: number[];
75
+ variableFeeSlopeHighPct: number[];
76
+ /**
77
+ * Surge fee at the KINK — the middle control point of the three-point
78
+ * curve (`PERCENT_SCALE` units). Between `variableFeeThresholdPct` and
79
+ * the kink the fee runs linearly from `variableFeeSlopeLowPct` to this
80
+ * value; beyond it, from this value to `variableFeeSlopeHighPct` at full
81
+ * window fill. Contract enforces `low <= mid <= high`.
82
+ *
83
+ * New in v5.1 (carved out of `AssetConfig.reserved`). Pools written by
84
+ * the older program read `0`.
85
+ */
86
+ variableFeeSlopeMidPct: number[];
87
+ /**
88
+ * Window fill at which the surge curve kinks, in WHOLE PERCENT (0..=100)
89
+ * — NOT `PERCENT_SCALE` units. `0` ⇒ no kink: the curve degenerates to a
90
+ * single straight line from `low` at the threshold to `high` at full fill,
91
+ * which is exactly how every pre-v5.1 pool decodes.
92
+ *
93
+ * New in v5.1 (carved out of `AssetConfig.reserved`).
94
+ */
95
+ variableFeeKinkPct: number[];
96
+ /**
97
+ * Per-token input kill switch. `false` ⇒ swaps with this token as INPUT
98
+ * revert (`TokenInactive`). Defaults to `true`.
99
+ */
100
+ isActive: boolean[];
101
+ virtualBalances: BN[];
102
+ actualBalances: BN[];
103
+ protocolFeesOwed: BN[];
104
+ previousSelloff: BN[];
105
+ currentSelloff: BN[];
106
+ windowStartTimestamp: BN[];
107
+ /** Virtual-balance snapshot taken when the max-selloff window opened. */
108
+ selloffVbSnapshot: BN[];
109
+ /**
110
+ * Per-pool Address Lookup Table. `PublicKey.default` means the pool's
111
+ * ALT has not been provisioned yet (`initialize_pool_alt` not called).
112
+ * SDK uses this to choose between v0 (with ALT) and legacy tx-building
113
+ * paths.
114
+ */
115
+ lookupTable: PublicKey;
116
+ /**
117
+ * Effective Token-2022 banned-extensions bitmap this pool's tokens were
118
+ * vetted against at creation (creator override, or the config default).
119
+ * `0` ⇒ no extensions banned. Pre-upgrade pools read `0`. A permissive
120
+ * value is a rug-risk — surface it before depositing.
121
+ */
122
+ bannedExtensions: BN;
123
+ /** The exact trailing ABI padding, preserved for complete state inspection. */
124
+ reserved: Buffer;
125
+ }
126
+ /** 8-byte anchor discriminator for CubicPool. */
127
+ export declare const POOL_DISCRIMINATOR_LEN = 8;
128
+ /**
129
+ * Total on-chain size of a v4/v5 CubicPool (includes the 8-byte
130
+ * discriminator). v5.1 carved its new fields out of `reserved`, so the
131
+ * size is deliberately identical to v4 — size alone cannot tell the two
132
+ * apart. Decoding interprets the current layout; it does not prove an older
133
+ * account has been migrated.
134
+ */
135
+ export declare const POOL_V4_LEN = 1683;
136
+ /** Alias for {@link POOL_V4_LEN}; the layout is shared by v4 and v5. */
137
+ export declare const POOL_LEN = 1683;
138
+ /** Pre-v4 size — legacy accounts are unsupported by the current v4-to-v5 migration. */
139
+ export declare const POOL_V3_LEN = 1154;
140
+ export declare function decodePoolAccount(data: Buffer): RawPoolAccount;
141
+ //# sourceMappingURL=poolAccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poolAccount.d.ts","sourceRoot":"","sources":["../../src/parsers/poolAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,EAAE,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,EAAE,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,SAAS,CAAC;IAE5B,YAAY,EAAE,SAAS,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,2EAA2E;IAC3E,0BAA0B,EAAE,MAAM,CAAC;IACnC,8BAA8B,EAAE,MAAM,CAAC;IACvC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,uBAAuB,EAAE,EAAE,CAAC;IAC5B;;;;;;;OAOG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,0BAA0B,EAAE,MAAM,CAAC;IAGnC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACxB;;;OAGG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,mEAAmE;IACnE,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC;;;;;;;;;OASG;IACH,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC;;;;;;;OAOG;IACH,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B;;;OAGG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAC;IAEpB,eAAe,EAAE,EAAE,EAAE,CAAC;IACtB,cAAc,EAAE,EAAE,EAAE,CAAC;IACrB,gBAAgB,EAAE,EAAE,EAAE,CAAC;IACvB,eAAe,EAAE,EAAE,EAAE,CAAC;IACtB,cAAc,EAAE,EAAE,EAAE,CAAC;IACrB,oBAAoB,EAAE,EAAE,EAAE,CAAC;IAC3B,yEAAyE;IACzE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IAExB;;;;;OAKG;IACH,WAAW,EAAE,SAAS,CAAC;IAEvB;;;;;OAKG;IACH,gBAAgB,EAAE,EAAE,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,iDAAiD;AACjD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAGxC;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,wEAAwE;AACxE,eAAO,MAAM,QAAQ,OAAc,CAAC;AAKpC,uFAAuF;AACvF,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAuM9D"}