@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 @@
1
+ {"version":3,"file":"singleToken.js","sourceRoot":"","sources":["../../src/math/singleToken.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare function applySlippage(expected: bigint, slippageHbps: number): bigint;
2
+ /** Base fee rounds UP, exactly as swap.rs. Rate is in hundredths of bps. */
3
+ export declare function calculateSwapFee(amount: bigint, swapFeeRate: number): bigint;
4
+ /** Protocol share of the input fee also rounds UP. Rate is in basis points. */
5
+ export declare function calculateProtocolFee(fee: bigint, protocolFeeRate: number): bigint;
6
+ export declare function applySwapFee(amount: bigint, swapFeeRate: number): bigint;
7
+ /** Stored actual balances already exclude protocol fees. The third argument is retained for compatibility. */
8
+ export declare function lpBalances(actual: bigint, virtualBal: bigint, _protocolFeesOwed?: bigint): {
9
+ lpActual: bigint;
10
+ lpVirtual: bigint;
11
+ };
12
+ export declare function priceImpactHbps(spot: bigint, actual: bigint): number;
13
+ //# sourceMappingURL=slippage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slippage.d.ts","sourceRoot":"","sources":["../../src/math/slippage.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAI5E;AAKD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAI5E;AACD,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAIjF;AACD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAExE;AACD,8GAA8G;AAC9G,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB,CAEA;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIpE"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applySlippage = applySlippage;
4
+ exports.calculateSwapFee = calculateSwapFee;
5
+ exports.calculateProtocolFee = calculateProtocolFee;
6
+ exports.applySwapFee = applySwapFee;
7
+ exports.lpBalances = lpBalances;
8
+ exports.priceImpactHbps = priceImpactHbps;
9
+ const config_1 = require("../config");
10
+ const fixedPoint_1 = require("./fixedPoint");
11
+ function applySlippage(expected, slippageHbps) {
12
+ (0, fixedPoint_1.assertU64)(expected);
13
+ (0, fixedPoint_1.assertInteger)(slippageHbps, 0, config_1.SLIPPAGE_PRECISION, "slippage");
14
+ return expected * BigInt(config_1.SLIPPAGE_PRECISION - slippageHbps) / BigInt(config_1.SLIPPAGE_PRECISION);
15
+ }
16
+ function ceilRatio(amount, rate, scale) {
17
+ const numerator = amount * BigInt(rate), denominator = BigInt(scale);
18
+ return numerator / denominator + (numerator % denominator === 0n ? 0n : 1n);
19
+ }
20
+ /** Base fee rounds UP, exactly as swap.rs. Rate is in hundredths of bps. */
21
+ function calculateSwapFee(amount, swapFeeRate) {
22
+ (0, fixedPoint_1.assertU64)(amount);
23
+ (0, fixedPoint_1.assertInteger)(swapFeeRate, 0, config_1.MAX_SWAP_FEE_RATE, "swap fee");
24
+ return (0, fixedPoint_1.assertU64)(ceilRatio(amount, swapFeeRate, config_1.SWAP_FEE_PRECISION));
25
+ }
26
+ /** Protocol share of the input fee also rounds UP. Rate is in basis points. */
27
+ function calculateProtocolFee(fee, protocolFeeRate) {
28
+ (0, fixedPoint_1.assertU64)(fee);
29
+ (0, fixedPoint_1.assertInteger)(protocolFeeRate, 0, config_1.MAX_PROTOCOL_FEE_RATE, "protocol fee");
30
+ return (0, fixedPoint_1.assertU64)(ceilRatio(fee, protocolFeeRate, config_1.PROTOCOL_FEE_PRECISION));
31
+ }
32
+ function applySwapFee(amount, swapFeeRate) {
33
+ return amount - calculateSwapFee(amount, swapFeeRate);
34
+ }
35
+ /** Stored actual balances already exclude protocol fees. The third argument is retained for compatibility. */
36
+ function lpBalances(actual, virtualBal, _protocolFeesOwed) {
37
+ return { lpActual: (0, fixedPoint_1.assertU64)(actual), lpVirtual: (0, fixedPoint_1.assertU64)(virtualBal) };
38
+ }
39
+ function priceImpactHbps(spot, actual) {
40
+ if (spot <= 0n || actual >= spot)
41
+ return 0;
42
+ return Number((spot - actual) * BigInt(config_1.SLIPPAGE_PRECISION) / spot);
43
+ }
44
+ //# sourceMappingURL=slippage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slippage.js","sourceRoot":"","sources":["../../src/math/slippage.ts"],"names":[],"mappings":";;AAEA,sCAIC;AAMD,4CAIC;AAED,oDAIC;AACD,oCAEC;AAED,gCAKC;AACD,0CAIC;AArCD,sCAAqI;AACrI,6CAAwD;AACxD,SAAgB,aAAa,CAAC,QAAgB,EAAE,YAAoB;IAChE,IAAA,sBAAS,EAAC,QAAQ,CAAC,CAAC;IACpB,IAAA,0BAAa,EAAC,YAAY,EAAE,CAAC,EAAE,2BAAkB,EAAE,UAAU,CAAC,CAAC;IAC/D,OAAO,QAAQ,GAAG,MAAM,CAAC,2BAAkB,GAAG,YAAY,CAAC,GAAG,MAAM,CAAC,2BAAkB,CAAC,CAAC;AAC7F,CAAC;AACD,SAAS,SAAS,CAAC,MAAc,EAAE,IAAY,EAAE,KAAa;IAC1D,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,OAAO,SAAS,GAAG,WAAW,GAAG,CAAC,SAAS,GAAG,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC;AACD,4EAA4E;AAC5E,SAAgB,gBAAgB,CAAC,MAAc,EAAE,WAAmB;IAChE,IAAA,sBAAS,EAAC,MAAM,CAAC,CAAC;IAClB,IAAA,0BAAa,EAAC,WAAW,EAAE,CAAC,EAAE,0BAAiB,EAAE,UAAU,CAAC,CAAC;IAC7D,OAAO,IAAA,sBAAS,EAAC,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,2BAAkB,CAAC,CAAC,CAAC;AACzE,CAAC;AACD,+EAA+E;AAC/E,SAAgB,oBAAoB,CAAC,GAAW,EAAE,eAAuB;IACrE,IAAA,sBAAS,EAAC,GAAG,CAAC,CAAC;IACf,IAAA,0BAAa,EAAC,eAAe,EAAE,CAAC,EAAE,8BAAqB,EAAE,cAAc,CAAC,CAAC;IACzE,OAAO,IAAA,sBAAS,EAAC,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,+BAAsB,CAAC,CAAC,CAAC;AAC9E,CAAC;AACD,SAAgB,YAAY,CAAC,MAAc,EAAE,WAAmB;IAC5D,OAAO,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC1D,CAAC;AACD,8GAA8G;AAC9G,SAAgB,UAAU,CAAC,MAAc,EAAE,UAAkB,EAAE,iBAA0B;IAIrF,OAAO,EAAE,QAAQ,EAAE,IAAA,sBAAS,EAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAA,sBAAS,EAAC,UAAU,CAAC,EAAE,CAAC;AAC7E,CAAC;AACD,SAAgB,eAAe,CAAC,IAAY,EAAE,MAAc;IACxD,IAAI,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,IAAI;QAC5B,OAAO,CAAC,CAAC;IACb,OAAO,MAAM,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,2BAAkB,CAAC,GAAG,IAAI,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { SelloffResult } from "./maxSelloff";
2
+ export interface SurgeCurve {
3
+ thresholdPct: number;
4
+ slopeLowPct: number;
5
+ slopeMidPct: number;
6
+ slopeHighPct: number;
7
+ kinkPct: number;
8
+ }
9
+ export declare function calcSurgeFeePct(params: SurgeCurve & {
10
+ before: bigint;
11
+ after: bigint;
12
+ cap: bigint;
13
+ }): bigint;
14
+ export declare function calcSurgeFeeAmount(params: SurgeCurve & {
15
+ window: SelloffResult | null;
16
+ amountInAfterFee: bigint;
17
+ amountOut: bigint;
18
+ virtualBalanceIn: bigint;
19
+ weightInBps: bigint;
20
+ virtualBalanceOut: bigint;
21
+ weightOutBps: bigint;
22
+ actualBalanceOut: bigint;
23
+ }): bigint;
24
+ //# sourceMappingURL=surgeFee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surgeFee.d.ts","sourceRoot":"","sources":["../../src/math/surgeFee.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,UAAU;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB;AAiCD,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAkBT;AACD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG;IACpD,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC5B,GAAG,MAAM,CAwBT"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calcSurgeFeePct = calcSurgeFeePct;
4
+ exports.calcSurgeFeeAmount = calcSurgeFeeAmount;
5
+ /** Piecewise-linear surge rate and four-segment output fee from swap.rs. */
6
+ const fixedPoint_1 = require("./fixedPoint");
7
+ const cubicMath_1 = require("./cubicMath");
8
+ const SCALE = 10000n;
9
+ function validateCurve(c) {
10
+ (0, fixedPoint_1.assertInteger)(c.thresholdPct, 0, 65535, "surge threshold");
11
+ (0, fixedPoint_1.assertInteger)(c.slopeLowPct, 0, 65535, "surge low");
12
+ (0, fixedPoint_1.assertInteger)(c.slopeMidPct, 0, 65535, "surge mid");
13
+ (0, fixedPoint_1.assertInteger)(c.slopeHighPct, 0, 65535, "surge high");
14
+ (0, fixedPoint_1.assertInteger)(c.kinkPct, 0, 255, "surge kink");
15
+ }
16
+ const sub = (a, b) => a > b ? a - b : 0n;
17
+ const min = (a, b) => a < b ? a : b;
18
+ const ceil = (a, b) => a / b + (a % b === 0n ? 0n : 1n);
19
+ function kinkT(c) { const thr = BigInt(c.thresholdPct), fill = BigInt(c.kinkPct) * 100n; return c.kinkPct === 0 || thr >= SCALE || fill <= thr || fill >= SCALE ? 0n : (fill - thr) * fixedPoint_1.ONE / (SCALE - thr); }
20
+ function rateAt(t, c, k) {
21
+ t = min(t, fixedPoint_1.ONE);
22
+ const low = BigInt(c.slopeLowPct), mid = BigInt(c.slopeMidPct), high = BigInt(c.slopeHighPct);
23
+ if (k === 0n)
24
+ return min(low + ceil(sub(high, low) * t, fixedPoint_1.ONE), SCALE);
25
+ if (t <= k)
26
+ return min(low + ceil(sub(mid, low) * t, k), SCALE);
27
+ return min(mid + ceil(sub(high, mid) * (t - k), fixedPoint_1.ONE - k), SCALE);
28
+ }
29
+ function integralTo(t, c, k) {
30
+ t = min(t, fixedPoint_1.ONE);
31
+ const low = BigInt(c.slopeLowPct), mid = BigInt(c.slopeMidPct), high = BigInt(c.slopeHighPct);
32
+ // Keep Rust's division before multiplication; algebraic reordering changes rounding.
33
+ const ramp = (x, span, den) => den === 0n || span === 0n || x === 0n ? 0n : span * (x * x / (2n * den));
34
+ if (k === 0n)
35
+ return low * t + ramp(t, sub(high, low), fixedPoint_1.ONE);
36
+ if (t <= k)
37
+ return low * t + ramp(t, sub(mid, low), k);
38
+ const rest = t - k;
39
+ return k * (low + mid) / 2n + mid * rest + ramp(rest, sub(high, mid), fixedPoint_1.ONE - k);
40
+ }
41
+ function calcSurgeFeePct(params) {
42
+ validateCurve(params);
43
+ const { before, after, cap } = params;
44
+ (0, fixedPoint_1.assertU64)(before);
45
+ (0, fixedPoint_1.assertU64)(after);
46
+ (0, fixedPoint_1.assertU64)(cap);
47
+ const thr = BigInt(params.thresholdPct);
48
+ if (cap === 0n || params.slopeHighPct === 0 || thr >= SCALE)
49
+ return 0n;
50
+ const k = kinkT(params), f0 = min(before * SCALE / cap, SCALE), f1 = min(after * SCALE / cap, SCALE);
51
+ if (f1 <= thr)
52
+ return 0n;
53
+ const den = SCALE - thr, t1 = (f1 - thr) * fixedPoint_1.ONE / den;
54
+ if (f1 <= f0)
55
+ return rateAt(t1, params, k);
56
+ const f0Clamped = f0 > thr ? f0 : thr, t0 = (f0Clamped - thr) * fixedPoint_1.ONE / den;
57
+ const integral = sub(integralTo(t1, params, k), integralTo(t0, params, k));
58
+ return min(ceil(den * integral, (f1 - f0Clamped) * fixedPoint_1.ONE), SCALE);
59
+ }
60
+ function calcSurgeFeeAmount(params) {
61
+ const { window, amountInAfterFee, amountOut } = params;
62
+ (0, fixedPoint_1.assertU64)(amountInAfterFee);
63
+ (0, fixedPoint_1.assertU64)(amountOut);
64
+ if (!window)
65
+ return 0n;
66
+ const before = window.effectiveSelloffBefore, after = window.effectiveSelloff, cap = window.maxSelloffCap;
67
+ if (calcSurgeFeePct({ ...params, before, after, cap }) === 0n)
68
+ return 0n;
69
+ const thrUnits = cap * BigInt(params.thresholdPct) / SCALE;
70
+ const span = sub(after, before), taxedLo = before > thrUnits ? before : thrUnits;
71
+ if (span === 0n || after <= taxedLo)
72
+ return 0n;
73
+ const cumulative = (u) => u <= before ? 0n : u >= after ? amountOut : (0, cubicMath_1.calcOutGivenIn)({ ...params, amountIn: amountInAfterFee * (u - before) / span });
74
+ const width = after - taxedLo;
75
+ let fee = 0n, prevU = taxedLo, prevY = cumulative(taxedLo);
76
+ for (let k = 1n; k <= 4n; k++) {
77
+ const u = k === 4n ? after : taxedLo + width * k / 4n, y = cumulative(u), segmentOut = sub(y, prevY);
78
+ if (segmentOut > 0n && u > prevU)
79
+ fee += ceil(segmentOut * calcSurgeFeePct({ ...params, before: prevU, after: u, cap }), SCALE);
80
+ prevU = u;
81
+ prevY = y;
82
+ }
83
+ return min(fee, amountOut);
84
+ }
85
+ //# sourceMappingURL=surgeFee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surgeFee.js","sourceRoot":"","sources":["../../src/math/surgeFee.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Validate a weight vector. Must sum exactly to 10_000 (WEIGHT_SCALE) and
3
+ * every entry must be in [MIN_WEIGHT, MAX_WEIGHT].
4
+ */
5
+ export declare function validateWeights(weights: number[]): void;
6
+ /**
7
+ * Weighted spot price of token_out priced in token_in, normalised to 18
8
+ * decimals. Used only for display; on-chain quoting uses calcOutGivenIn.
9
+ */
10
+ export declare function calcSpotPrice(params: {
11
+ balanceIn: bigint;
12
+ weightInBps: bigint;
13
+ balanceOut: bigint;
14
+ weightOutBps: bigint;
15
+ decimalsIn: number;
16
+ decimalsOut: number;
17
+ }): bigint;
18
+ /** Exact seed-deposit invariant from weighted_math.rs; returns raw BPT before u64/minimum-supply checks. */
19
+ export declare function calculateInvariant(balances: bigint[], normalizedWeights: number[], decimals: number[]): bigint;
20
+ //# sourceMappingURL=weightedMath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weightedMath.d.ts","sourceRoot":"","sources":["../../src/math/weightedMath.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAiBvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAWT;AAED,4GAA4G;AAC5G,wBAAgB,kBAAkB,CAAC,QAAQ,EAAC,MAAM,EAAE,EAAE,iBAAiB,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAC,MAAM,EAAE,GAAE,MAAM,CAW1G"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateWeights = validateWeights;
4
+ exports.calcSpotPrice = calcSpotPrice;
5
+ exports.calculateInvariant = calculateInvariant;
6
+ const fixedPoint_1 = require("./fixedPoint");
7
+ const logExp_1 = require("./logExp");
8
+ const config_1 = require("../config");
9
+ /**
10
+ * Validate a weight vector. Must sum exactly to 10_000 (WEIGHT_SCALE) and
11
+ * every entry must be in [MIN_WEIGHT, MAX_WEIGHT].
12
+ */
13
+ function validateWeights(weights) {
14
+ if (!Array.isArray(weights) || weights.length < 2) {
15
+ throw new Error("weightedMath: at least 2 weights required");
16
+ }
17
+ let sum = 0;
18
+ for (const w of weights) {
19
+ if (!Number.isInteger(w)) {
20
+ throw new Error("weightedMath: weights must be integers (bps)");
21
+ }
22
+ if (w < config_1.MIN_WEIGHT || w > config_1.MAX_WEIGHT) {
23
+ throw new Error(`weightedMath: weight ${w} out of [${config_1.MIN_WEIGHT}, ${config_1.MAX_WEIGHT}]`);
24
+ }
25
+ sum += w;
26
+ }
27
+ if (sum !== config_1.WEIGHT_SCALE) {
28
+ throw new Error(`weightedMath: weights sum to ${sum}, expected ${config_1.WEIGHT_SCALE}`);
29
+ }
30
+ }
31
+ /**
32
+ * Weighted spot price of token_out priced in token_in, normalised to 18
33
+ * decimals. Used only for display; on-chain quoting uses calcOutGivenIn.
34
+ */
35
+ function calcSpotPrice(params) {
36
+ const { balanceIn, weightInBps, balanceOut, weightOutBps, decimalsIn, decimalsOut } = params;
37
+ const scaleIn = 10n ** BigInt(18 - decimalsIn);
38
+ const scaleOut = 10n ** BigInt(18 - decimalsOut);
39
+ const bI = balanceIn * scaleIn;
40
+ const bO = balanceOut * scaleOut;
41
+ if (bO === 0n || weightOutBps === 0n)
42
+ return 0n;
43
+ // price = (bI / wI) / (bO / wO)
44
+ const numer = bI * weightOutBps * 10n ** 18n;
45
+ const denom = bO * weightInBps;
46
+ return numer / denom;
47
+ }
48
+ /** Exact seed-deposit invariant from weighted_math.rs; returns raw BPT before u64/minimum-supply checks. */
49
+ function calculateInvariant(balances, normalizedWeights, decimals) {
50
+ if (balances.length !== normalizedWeights.length || balances.length !== decimals.length || balances.length < 2)
51
+ throw new Error("invariant: invalid vector lengths");
52
+ let invariant = fixedPoint_1.ONE;
53
+ for (let i = 0; i < balances.length; i++) {
54
+ const raw = (0, fixedPoint_1.assertU64)(balances[i]);
55
+ (0, fixedPoint_1.assertInteger)(decimals[i], 0, 18, "decimals");
56
+ (0, fixedPoint_1.assertInteger)(normalizedWeights[i], 0, 10000, "weight");
57
+ if (raw === 0n)
58
+ return 0n;
59
+ const balance = decimals[i] >= 6 ? raw / (10n ** BigInt(decimals[i] - 6)) : (0, fixedPoint_1.assertU128)(raw * 10n ** BigInt(6 - decimals[i]));
60
+ if (balance === 0n)
61
+ return 0n;
62
+ invariant = (0, fixedPoint_1.mulDivDown)(invariant, (0, logExp_1.powFp)(balance, (0, fixedPoint_1.weightToFp)(normalizedWeights[i])), fixedPoint_1.ONE);
63
+ }
64
+ return invariant;
65
+ }
66
+ //# sourceMappingURL=weightedMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weightedMath.js","sourceRoot":"","sources":["../../src/math/weightedMath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import BN from "bn.js";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ /**
4
+ * Minimal Borsh-compatible reader. Enough to decode the Coffer contract
5
+ * event structs (Pubkey × N, u8/u16/u32/u64/i64, bool, Vec<u64>,
6
+ * Vec<Pubkey>). Avoids pulling a borsh dep into the SDK's hot path.
7
+ */
8
+ export declare class BorshReader {
9
+ private readonly buf;
10
+ private offset;
11
+ constructor(buf: Buffer);
12
+ remaining(): number;
13
+ /** Current read position — pair with `seek` to re-parse an ambiguous tail. */
14
+ pos(): number;
15
+ seek(offset: number): void;
16
+ skip(n: number): void;
17
+ u8(): number;
18
+ u16(): number;
19
+ u32(): number;
20
+ u64(): BN;
21
+ i64(): BN;
22
+ bool(): boolean;
23
+ pubkey(): PublicKey;
24
+ vecU64(): BN[];
25
+ vecPubkey(): PublicKey[];
26
+ private requireBytes;
27
+ }
28
+ //# sourceMappingURL=borsh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borsh.d.ts","sourceRoot":"","sources":["../../src/parsers/borsh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,WAAW;IAEV,OAAO,CAAC,QAAQ,CAAC,GAAG;IADhC,OAAO,CAAC,MAAM,CAAK;gBACU,GAAG,EAAE,MAAM;IAExC,SAAS,IAAI,MAAM;IAInB,8EAA8E;IAC9E,GAAG,IAAI,MAAM;IAIb,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI1B,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKrB,EAAE,IAAI,MAAM;IAOZ,GAAG,IAAI,MAAM;IAOb,GAAG,IAAI,MAAM;IAOb,GAAG,IAAI,EAAE;IAOT,GAAG,IAAI,EAAE;IAaT,IAAI,IAAI,OAAO;IAMf,MAAM,IAAI,SAAS;IAOnB,MAAM,IAAI,EAAE,EAAE;IAQd,SAAS,IAAI,SAAS,EAAE;IAQxB,OAAO,CAAC,YAAY;CAKrB"}
@@ -0,0 +1,104 @@
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.BorshReader = void 0;
7
+ const bn_js_1 = __importDefault(require("bn.js"));
8
+ const web3_js_1 = require("@solana/web3.js");
9
+ /**
10
+ * Minimal Borsh-compatible reader. Enough to decode the Coffer contract
11
+ * event structs (Pubkey × N, u8/u16/u32/u64/i64, bool, Vec<u64>,
12
+ * Vec<Pubkey>). Avoids pulling a borsh dep into the SDK's hot path.
13
+ */
14
+ class BorshReader {
15
+ constructor(buf) {
16
+ this.buf = buf;
17
+ this.offset = 0;
18
+ }
19
+ remaining() {
20
+ return this.buf.length - this.offset;
21
+ }
22
+ /** Current read position — pair with `seek` to re-parse an ambiguous tail. */
23
+ pos() {
24
+ return this.offset;
25
+ }
26
+ seek(offset) {
27
+ this.offset = offset;
28
+ }
29
+ skip(n) {
30
+ this.requireBytes(n);
31
+ this.offset += n;
32
+ }
33
+ u8() {
34
+ this.requireBytes(1);
35
+ const v = this.buf.readUInt8(this.offset);
36
+ this.offset += 1;
37
+ return v;
38
+ }
39
+ u16() {
40
+ this.requireBytes(2);
41
+ const v = this.buf.readUInt16LE(this.offset);
42
+ this.offset += 2;
43
+ return v;
44
+ }
45
+ u32() {
46
+ this.requireBytes(4);
47
+ const v = this.buf.readUInt32LE(this.offset);
48
+ this.offset += 4;
49
+ return v;
50
+ }
51
+ u64() {
52
+ this.requireBytes(8);
53
+ const slice = this.buf.slice(this.offset, this.offset + 8);
54
+ this.offset += 8;
55
+ return new bn_js_1.default(slice, "le");
56
+ }
57
+ i64() {
58
+ this.requireBytes(8);
59
+ const slice = this.buf.slice(this.offset, this.offset + 8);
60
+ this.offset += 8;
61
+ // i64 is two's complement little-endian — treat as signed.
62
+ const bn = new bn_js_1.default(slice, "le");
63
+ if (slice[7] & 0x80) {
64
+ // top bit set → negative: subtract 2^64
65
+ return bn.sub(new bn_js_1.default(2).pow(new bn_js_1.default(64)));
66
+ }
67
+ return bn;
68
+ }
69
+ bool() {
70
+ const value = this.u8();
71
+ if (value > 1)
72
+ throw new Error(`BorshReader: invalid bool ${value}`);
73
+ return value === 1;
74
+ }
75
+ pubkey() {
76
+ this.requireBytes(32);
77
+ const slice = this.buf.slice(this.offset, this.offset + 32);
78
+ this.offset += 32;
79
+ return new web3_js_1.PublicKey(slice);
80
+ }
81
+ vecU64() {
82
+ const len = this.u32();
83
+ this.requireBytes(len * 8);
84
+ const out = [];
85
+ for (let i = 0; i < len; i++)
86
+ out.push(this.u64());
87
+ return out;
88
+ }
89
+ vecPubkey() {
90
+ const len = this.u32();
91
+ this.requireBytes(len * 32);
92
+ const out = [];
93
+ for (let i = 0; i < len; i++)
94
+ out.push(this.pubkey());
95
+ return out;
96
+ }
97
+ requireBytes(length) {
98
+ if (!Number.isSafeInteger(length) || length < 0 || length > this.remaining()) {
99
+ throw new Error(`BorshReader: expected ${length} bytes at offset ${this.offset}, ${this.remaining()} remain`);
100
+ }
101
+ }
102
+ }
103
+ exports.BorshReader = BorshReader;
104
+ //# sourceMappingURL=borsh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borsh.js","sourceRoot":"","sources":["../../src/parsers/borsh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { ContractAccountMap, ContractEventMap, ContractProgram } from "../types/contracts";
2
+ export type ContractEvent = {
3
+ [P in ContractProgram]: {
4
+ [E in keyof ContractEventMap[P]]: {
5
+ program: P;
6
+ kind: E;
7
+ data: ContractEventMap[P][E];
8
+ };
9
+ }[keyof ContractEventMap[P]];
10
+ }[ContractProgram];
11
+ /** Decode any account in the current ABI, including Config and Treasury.
12
+ * Fields retain IDL snake_case names; u64/i64 values remain BN without loss.
13
+ * The discriminator is verified. Check RPC account ownership separately.
14
+ */
15
+ export declare function decodeContractAccount<P extends ContractProgram, A extends keyof ContractAccountMap[P] & string>(program: P, account: A, data: Buffer): ContractAccountMap[P][A];
16
+ /** Decode the payload following `Program data:` using all current event fields.
17
+ * Returns null for an unknown or malformed event. `program` limits decoding to
18
+ * one ABI when the emitting program is known from the transaction invoke stack.
19
+ */
20
+ export declare function decodeContractEvent(base64: string, program?: ContractProgram): ContractEvent | null;
21
+ /** Parse all 60 known events; fields and names match the shipped contract IDLs.
22
+ * This is decoding, not proof of the emitting program's identity. Consumers
23
+ * must verify transaction success and program provenance before indexing.
24
+ */
25
+ export declare function parseContractEvents(logs: string[], program?: ContractProgram): ContractEvent[];
26
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/parsers/contracts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE3F,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,eAAe,GAAG;SACrB,CAAC,IAAI,MAAM,gBAAgB,CAAC,CAAC,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC,CAAC;YAAC,IAAI,EAAE,CAAC,CAAC;YAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE;KACxF,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC,eAAe,CAAC,CAAC;AAKnB;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,MAAM,kBAAkB,CAAC,CAAC,CAAC,GAAG,MAAM,EAC7G,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GACnC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAS1B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa,GAAG,IAAI,CAcnG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa,EAAE,CAS9F"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeContractAccount = decodeContractAccount;
4
+ exports.decodeContractEvent = decodeContractEvent;
5
+ exports.parseContractEvents = parseContractEvents;
6
+ const anchor_1 = require("@coral-xyz/anchor");
7
+ const idl_1 = require("../idl");
8
+ const accountCoders = new Map();
9
+ const eventCoders = new Map();
10
+ /** Decode any account in the current ABI, including Config and Treasury.
11
+ * Fields retain IDL snake_case names; u64/i64 values remain BN without loss.
12
+ * The discriminator is verified. Check RPC account ownership separately.
13
+ */
14
+ function decodeContractAccount(program, account, data) {
15
+ let coder = accountCoders.get(program);
16
+ if (!coder) {
17
+ coder = new anchor_1.BorshAccountsCoder(idl_1.IDLS[program]);
18
+ accountCoders.set(program, coder);
19
+ }
20
+ const expectedSize = coder.size(account);
21
+ if (data.length !== expectedSize)
22
+ throw new Error(`${account} has ${data.length} bytes; expected ${expectedSize} for the current ABI`);
23
+ return coder.decode(account, data);
24
+ }
25
+ /** Decode the payload following `Program data:` using all current event fields.
26
+ * Returns null for an unknown or malformed event. `program` limits decoding to
27
+ * one ABI when the emitting program is known from the transaction invoke stack.
28
+ */
29
+ function decodeContractEvent(base64, program) {
30
+ const programs = program ? [program] : Object.keys(idl_1.IDLS);
31
+ for (const candidate of programs) {
32
+ let coder = eventCoders.get(candidate);
33
+ if (!coder) {
34
+ coder = new anchor_1.BorshEventCoder(idl_1.IDLS[candidate]);
35
+ eventCoders.set(candidate, coder);
36
+ }
37
+ try {
38
+ const result = coder.decode(base64);
39
+ if (result)
40
+ return { program: candidate, kind: result.name, data: result.data };
41
+ }
42
+ catch { /* Try the other ABI, or report an undecodable event. */ }
43
+ }
44
+ return null;
45
+ }
46
+ /** Parse all 60 known events; fields and names match the shipped contract IDLs.
47
+ * This is decoding, not proof of the emitting program's identity. Consumers
48
+ * must verify transaction success and program provenance before indexing.
49
+ */
50
+ function parseContractEvents(logs, program) {
51
+ const events = [];
52
+ for (const line of logs) {
53
+ const payload = /^Program data:\s+(.+)$/.exec(line)?.[1];
54
+ if (!payload)
55
+ continue;
56
+ const event = decodeContractEvent(payload, program);
57
+ if (event)
58
+ events.push(event);
59
+ }
60
+ return events;
61
+ }
62
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/parsers/contracts.ts"],"names":[],"mappings":";;AAiBA,sDAWC;AAMD,kDAcC;AAMD,kDASC;AA/DD,8CAA6E;AAC7E,gCAA8B;AAS9B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuC,CAAC;AACrE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoC,CAAC;AAEhE;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,OAAU,EAAE,OAAU,EAAE,IAAY;IAEpC,IAAI,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,IAAI,2BAAkB,CAAC,UAAI,CAAC,OAAO,CAAmB,CAAC,CAAC;QAChE,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,QAAQ,IAAI,CAAC,MAAM,oBAAoB,YAAY,sBAAsB,CAAC,CAAC;IACvI,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,MAAc,EAAE,OAAyB;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAI,CAAsB,CAAC;IAC9E,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;QACjC,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,wBAAe,CAAC,UAAI,CAAC,SAAS,CAAmB,CAAC,CAAC;YAC/D,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM;gBAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAmB,CAAC;QACnG,CAAC;QAAC,MAAM,CAAC,CAAC,wDAAwD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,IAAc,EAAE,OAAyB;IAC3E,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CubicPoolEvent } from "../types/events";
2
+ export declare function parseCubicPoolEvents(logs: string[]): CubicPoolEvent[];
3
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/parsers/events.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAA2B,MAAM,iBAAiB,CAAC;AAkC1E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAgCrE"}