@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":"CubicPoolClient.js","sourceRoot":"","sources":["../../src/clients/CubicPoolClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { Keypair, PublicKey, TransactionInstruction } from "@solana/web3.js";
2
+ import { CofferConfig } from "../config";
3
+ import { SdkResult } from "../types/result";
4
+ import { BuiltTx, DeployPoolParams } from "../types/tx";
5
+ export interface PoolFactoryClientParams {
6
+ config: CofferConfig;
7
+ }
8
+ export interface InitializeConfigParams {
9
+ payer: PublicKey;
10
+ defaultProtocolFeeRate: number;
11
+ }
12
+ /**
13
+ * Builds transactions for protocol governance / pool deployment. Consumed
14
+ * by the deploy-pool UI flow and by the backend's admin tools.
15
+ */
16
+ export declare class PoolFactoryClient {
17
+ readonly config: CofferConfig;
18
+ constructor(params: PoolFactoryClientParams);
19
+ /**
20
+ * Deploy a new pool atop an existing `CubicPoolConfig`. Caller is
21
+ * responsible for funding `params.payer` with enough SOL to cover rent
22
+ * for the pool account and the BPT mint PDA.
23
+ *
24
+ * Returns the `pool` and `bptMint` pubkeys it WILL create (derived PDAs)
25
+ * plus the signable tx.
26
+ */
27
+ buildDeployPoolTx(params: DeployPoolParams): SdkResult<BuiltTx & {
28
+ pool: PublicKey;
29
+ bptMint: PublicKey;
30
+ }>;
31
+ /**
32
+ * Initialize a new `CubicPoolConfig`, through the protocol-admin wrapper.
33
+ *
34
+ * Routed via `protocol_admin::pool_initialize_config` rather than
35
+ * `cubic_pool::initialize_config` directly: post-audit the latter requires
36
+ * the Treasury PDA to SIGN (H-01), and a PDA signature can only come from
37
+ * the owning program's `invoke_signed`. Building the direct instruction
38
+ * yields a transaction no wallet can ever satisfy.
39
+ *
40
+ * `params.payer` must be the current `Treasury.admin` — it is the human
41
+ * signer the wrapper authenticates. The returned `configKeypair` is the
42
+ * second required signer (the config account is `init`, not a PDA).
43
+ */
44
+ buildInitializeConfigTx(params: InitializeConfigParams): SdkResult<BuiltTx & {
45
+ configKeypair: Keypair;
46
+ }>;
47
+ /**
48
+ * Low-level: return the raw `initialize_cubic_pool` ix without a CU
49
+ * budget or wrapping. Useful for combining with other ixs in the same tx.
50
+ */
51
+ initializeCubicPoolIx(params: DeployPoolParams): TransactionInstruction;
52
+ }
53
+ //# sourceMappingURL=PoolFactoryClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoolFactoryClient.d.ts","sourceRoot":"","sources":["../../src/clients/PoolFactoryClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEnG,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAW,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQxD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,SAAS,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;gBAElB,MAAM,EAAE,uBAAuB;IAI3C;;;;;;;OAOG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC,OAAO,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,CAAC;IA6BzG;;;;;;;;;;;;OAYG;IACH,uBAAuB,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,CAChE,OAAO,GAAG;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE,CACrC;IAkBD;;;OAGG;IACH,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,sBAAsB;CAGxE"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PoolFactoryClient = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const result_1 = require("../types/result");
6
+ const tx_builders_1 = require("./tx-builders");
7
+ const pda_1 = require("../utils/pda");
8
+ /**
9
+ * Builds transactions for protocol governance / pool deployment. Consumed
10
+ * by the deploy-pool UI flow and by the backend's admin tools.
11
+ */
12
+ class PoolFactoryClient {
13
+ constructor(params) {
14
+ this.config = params.config;
15
+ }
16
+ /**
17
+ * Deploy a new pool atop an existing `CubicPoolConfig`. Caller is
18
+ * responsible for funding `params.payer` with enough SOL to cover rent
19
+ * for the pool account and the BPT mint PDA.
20
+ *
21
+ * Returns the `pool` and `bptMint` pubkeys it WILL create (derived PDAs)
22
+ * plus the signable tx.
23
+ */
24
+ buildDeployPoolTx(params) {
25
+ if (params.tokens.length < 2 || params.tokens.length > 10) {
26
+ return (0, result_1.err)("invalid_input", "tokens.length must be in [2, 10]");
27
+ }
28
+ if (params.tokens.length !== params.weightsBps.length) {
29
+ return (0, result_1.err)("invalid_input", "tokens/weightsBps length mismatch");
30
+ }
31
+ if (params.tokens.length !== params.virtualBalances.length) {
32
+ return (0, result_1.err)("invalid_input", "tokens/virtualBalances length mismatch");
33
+ }
34
+ const sum = params.weightsBps.reduce((a, b) => a + b, 0);
35
+ if (sum !== 10000)
36
+ return (0, result_1.err)("invalid_input", `weights must sum to 10000 (got ${sum})`);
37
+ for (const vb of params.virtualBalances) {
38
+ if (vb.isZero())
39
+ return (0, result_1.err)("invalid_input", "virtualBalances must all be > 0");
40
+ }
41
+ const [pool] = (0, pda_1.derivePoolPda)(this.config.programs.cubicPool, params.configKey, params.poolId);
42
+ const [bptMint] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("bpt_mint"), pool.toBuffer()], this.config.programs.cubicPool);
43
+ try {
44
+ const tx = (0, tx_builders_1.buildDeployPoolTx)(this.config, params);
45
+ return (0, result_1.ok)({ ...tx, pool, bptMint });
46
+ }
47
+ catch (e) {
48
+ return (0, result_1.err)("tx_build_failed", "Failed to build deploy-pool tx", e);
49
+ }
50
+ }
51
+ /**
52
+ * Initialize a new `CubicPoolConfig`, through the protocol-admin wrapper.
53
+ *
54
+ * Routed via `protocol_admin::pool_initialize_config` rather than
55
+ * `cubic_pool::initialize_config` directly: post-audit the latter requires
56
+ * the Treasury PDA to SIGN (H-01), and a PDA signature can only come from
57
+ * the owning program's `invoke_signed`. Building the direct instruction
58
+ * yields a transaction no wallet can ever satisfy.
59
+ *
60
+ * `params.payer` must be the current `Treasury.admin` — it is the human
61
+ * signer the wrapper authenticates. The returned `configKeypair` is the
62
+ * second required signer (the config account is `init`, not a PDA).
63
+ */
64
+ buildInitializeConfigTx(params) {
65
+ try {
66
+ const configKeypair = web3_js_1.Keypair.generate();
67
+ const ix = (0, tx_builders_1.buildPoolInitializeConfigIx)(this.config, {
68
+ config: configKeypair.publicKey,
69
+ admin: params.payer,
70
+ defaultProtocolFeeRate: params.defaultProtocolFeeRate,
71
+ });
72
+ return (0, result_1.ok)({
73
+ instructions: [web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 200000 }), ix],
74
+ suggestedCuLimit: 200000,
75
+ configKeypair,
76
+ });
77
+ }
78
+ catch (e) {
79
+ return (0, result_1.err)("tx_build_failed", "Failed to build initialize_config tx", e);
80
+ }
81
+ }
82
+ /**
83
+ * Low-level: return the raw `initialize_cubic_pool` ix without a CU
84
+ * budget or wrapping. Useful for combining with other ixs in the same tx.
85
+ */
86
+ initializeCubicPoolIx(params) {
87
+ return (0, tx_builders_1.buildInitializeCubicPoolIx)(this.config, params);
88
+ }
89
+ }
90
+ exports.PoolFactoryClient = PoolFactoryClient;
91
+ //# sourceMappingURL=PoolFactoryClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoolFactoryClient.js","sourceRoot":"","sources":["../../src/clients/PoolFactoryClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { Commitment, Connection, PublicKey } from "@solana/web3.js";
2
+ import { SdkResult } from "../types/result";
3
+ import { RetryOptions } from "../utils/retry";
4
+ export interface RpcClientParams {
5
+ endpoint?: string;
6
+ /** Ordered endpoint list. If provided, it is used as-is. */
7
+ endpoints?: string[];
8
+ /** Extra endpoints appended after `endpoint`. Ignored when `endpoints` is set. */
9
+ fallbackEndpoints?: string[];
10
+ apiKey?: string;
11
+ commitment?: Commitment;
12
+ /** Optional headers (e.g. for Helius/Triton auth). */
13
+ headers?: Record<string, string>;
14
+ /** Per-endpoint timeout before the next RPC endpoint is tried. */
15
+ timeoutMs?: number;
16
+ /** Backoff schedule between endpoint attempts. Defaults to no delay. */
17
+ backoffMs?: number[];
18
+ /** Test hook for injecting lightweight fake connections. */
19
+ connectionFactory?: (endpoint: string) => Pick<Connection, "getAccountInfo" | "getMultipleAccountsInfo" | "getSlot">;
20
+ }
21
+ /**
22
+ * Thin wrapper around `@solana/web3.js` Connection with built-in retry +
23
+ * human-readable error mapping. Every public method returns a SdkResult<T>.
24
+ */
25
+ export declare class RpcClient {
26
+ readonly endpoints: string[];
27
+ private readonly connections;
28
+ private readonly defaultCommitment;
29
+ private readonly timeoutMs;
30
+ private readonly backoffMs;
31
+ private activeEndpointIndex;
32
+ constructor(params: RpcClientParams);
33
+ get connection(): Connection;
34
+ call<T>(fn: (conn: Connection) => Promise<T>, retry?: RetryOptions): Promise<SdkResult<T>>;
35
+ getAccountInfo(pk: PublicKey, retry?: RetryOptions): Promise<SdkResult<{
36
+ data: Buffer;
37
+ owner: PublicKey;
38
+ lamports: number;
39
+ } | null>>;
40
+ getMultipleAccountsInfo(pks: PublicKey[], retry?: RetryOptions): Promise<SdkResult<(Buffer | null)[]>>;
41
+ getMultipleAccountsWithInfo(pks: PublicKey[], retry?: RetryOptions): Promise<SdkResult<({
42
+ data: Buffer;
43
+ owner: PublicKey;
44
+ lamports: number;
45
+ } | null)[]>>;
46
+ getSlot(retry?: RetryOptions): Promise<SdkResult<number>>;
47
+ private callWithFallback;
48
+ }
49
+ //# sourceMappingURL=RpcClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RpcClient.d.ts","sourceRoot":"","sources":["../../src/clients/RpcClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAC5C,UAAU,EACV,gBAAgB,GAAG,yBAAyB,GAAG,SAAS,CACzD,CAAC;CACH;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGzB;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAa;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,mBAAmB,CAAK;gBAEpB,MAAM,EAAE,eAAe;IAkBnC,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,CAAC,CAAC,EACJ,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EACpC,KAAK,GAAE,YAAiB,GACvB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAIxB,cAAc,CACZ,EAAE,EAAE,SAAS,EACb,KAAK,GAAE,YAAiB,GACvB,OAAO,CAAC,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAYlF,uBAAuB,CACrB,GAAG,EAAE,SAAS,EAAE,EAChB,KAAK,GAAE,YAAiB,GACvB,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAOxC,2BAA2B,CACzB,GAAG,EAAE,SAAS,EAAE,EAChB,KAAK,GAAE,YAAiB,GACvB,OAAO,CAAC,SAAS,CAAC,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAOtF,OAAO,CAAC,KAAK,GAAE,YAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAI/C,gBAAgB;CA4B/B"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RpcClient = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const result_1 = require("../types/result");
6
+ const errors_1 = require("../utils/errors");
7
+ /**
8
+ * Thin wrapper around `@solana/web3.js` Connection with built-in retry +
9
+ * human-readable error mapping. Every public method returns a SdkResult<T>.
10
+ */
11
+ class RpcClient {
12
+ constructor(params) {
13
+ this.activeEndpointIndex = 0;
14
+ this.defaultCommitment = params.commitment ?? "confirmed";
15
+ this.timeoutMs = params.timeoutMs ?? 2000;
16
+ this.backoffMs = params.backoffMs ?? [];
17
+ this.endpoints = normalizeEndpoints(params);
18
+ if (this.endpoints.length === 0) {
19
+ throw new Error("RpcClient requires at least one endpoint");
20
+ }
21
+ this.connections = this.endpoints.map((endpoint) => params.connectionFactory
22
+ ? params.connectionFactory(endpoint)
23
+ : new web3_js_1.Connection(endpoint, {
24
+ commitment: this.defaultCommitment,
25
+ httpHeaders: params.headers,
26
+ }));
27
+ }
28
+ get connection() {
29
+ return this.connections[this.activeEndpointIndex];
30
+ }
31
+ call(fn, retry = {}) {
32
+ return this.callWithFallback((conn) => fn(conn), retry);
33
+ }
34
+ getAccountInfo(pk, retry = {}) {
35
+ return this.callWithFallback(async (conn) => {
36
+ const info = await conn.getAccountInfo(pk, this.defaultCommitment);
37
+ if (!info)
38
+ return null;
39
+ return {
40
+ data: info.data,
41
+ owner: info.owner,
42
+ lamports: info.lamports,
43
+ };
44
+ }, retry);
45
+ }
46
+ getMultipleAccountsInfo(pks, retry = {}) {
47
+ return this.callWithFallback(async (conn) => {
48
+ const infos = await conn.getMultipleAccountsInfo(pks, this.defaultCommitment);
49
+ return infos.map((i) => (i ? i.data : null));
50
+ }, retry);
51
+ }
52
+ getMultipleAccountsWithInfo(pks, retry = {}) {
53
+ return this.callWithFallback(async (conn) => {
54
+ const infos = await conn.getMultipleAccountsInfo(pks, this.defaultCommitment);
55
+ return infos.map((i) => i ? { data: i.data, owner: i.owner, lamports: i.lamports } : null);
56
+ }, retry);
57
+ }
58
+ getSlot(retry = {}) {
59
+ return this.callWithFallback((conn) => conn.getSlot(this.defaultCommitment), retry);
60
+ }
61
+ async callWithFallback(operation, retry = {}) {
62
+ const attempts = Math.max(1, retry.attempts ?? this.connections.length);
63
+ const timeoutMs = retry.timeoutMs ?? this.timeoutMs;
64
+ const shouldRetry = retry.shouldRetry ?? defaultShouldRetry;
65
+ let lastError;
66
+ for (let attempt = 0; attempt < attempts; attempt++) {
67
+ const endpointIndex = (this.activeEndpointIndex + attempt) % this.connections.length;
68
+ try {
69
+ const data = await withTimeout(operation(this.connections[endpointIndex]), timeoutMs);
70
+ this.activeEndpointIndex = endpointIndex;
71
+ return (0, result_1.ok)(data);
72
+ }
73
+ catch (e) {
74
+ lastError = e;
75
+ if (!shouldRetry(e))
76
+ break;
77
+ if (attempt < attempts - 1) {
78
+ const delay = this.backoffMs[Math.min(attempt, this.backoffMs.length - 1)] ?? 0;
79
+ if (delay > 0)
80
+ await sleep(delay);
81
+ }
82
+ }
83
+ }
84
+ const sdkError = (0, errors_1.toSdkError)(lastError);
85
+ return (0, result_1.err)(sdkError.code, sdkError.humanMessage, lastError);
86
+ }
87
+ }
88
+ exports.RpcClient = RpcClient;
89
+ function normalizeEndpoints(params) {
90
+ if (params.endpoints && params.endpoints.length > 0) {
91
+ return dedupe(params.endpoints);
92
+ }
93
+ const primary = params.endpoint
94
+ ? params.apiKey
95
+ ? appendApiKey(params.endpoint, params.apiKey)
96
+ : params.endpoint
97
+ : undefined;
98
+ return dedupe([primary, ...(params.fallbackEndpoints ?? [])].filter(Boolean));
99
+ }
100
+ function dedupe(endpoints) {
101
+ return Array.from(new Set(endpoints));
102
+ }
103
+ function defaultShouldRetry(e) {
104
+ const sdkError = (0, errors_1.toSdkError)(e);
105
+ return (sdkError.code === "rpc_timeout" ||
106
+ sdkError.code === "rpc_unavailable" ||
107
+ sdkError.code === "rpc_rate_limited");
108
+ }
109
+ function sleep(ms) {
110
+ return new Promise((resolve) => setTimeout(resolve, ms));
111
+ }
112
+ function withTimeout(p, ms) {
113
+ return new Promise((resolve, reject) => {
114
+ const h = setTimeout(() => reject(new Error(`timed out after ${ms}ms`)), ms);
115
+ p.then((v) => {
116
+ clearTimeout(h);
117
+ resolve(v);
118
+ }, (e) => {
119
+ clearTimeout(h);
120
+ reject(e);
121
+ });
122
+ });
123
+ }
124
+ function appendApiKey(endpoint, apiKey) {
125
+ try {
126
+ const u = new URL(endpoint);
127
+ u.searchParams.set("api-key", apiKey);
128
+ return u.toString();
129
+ }
130
+ catch {
131
+ const sep = endpoint.includes("?") ? "&" : "?";
132
+ return `${endpoint}${sep}api-key=${encodeURIComponent(apiKey)}`;
133
+ }
134
+ }
135
+ //# sourceMappingURL=RpcClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RpcClient.js","sourceRoot":"","sources":["../../src/clients/RpcClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { Commitment, PublicKey } 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 { BuiltTx, SingleTokenDepositParams, SingleTokenDepositQuote } from "../types/tx";
7
+ import { RpcClient } from "./RpcClient";
8
+ import { CubicPoolClient } from "./CubicPoolClient";
9
+ export interface SingleTokenDepositClientParams {
10
+ config: CofferConfig;
11
+ poolAddress: PublicKey;
12
+ /** Optional — reuses an existing one if provided. */
13
+ rpc?: RpcClient | {
14
+ endpoint?: string;
15
+ endpoints?: string[];
16
+ fallbackEndpoints?: string[];
17
+ apiKey?: string;
18
+ commitment?: Commitment;
19
+ timeoutMs?: number;
20
+ };
21
+ /**
22
+ * Optional parent pool client — lets the deposit client reuse an already
23
+ * synced PoolInfo instead of making a fresh RPC round-trip.
24
+ */
25
+ poolClient?: CubicPoolClient;
26
+ }
27
+ /**
28
+ * Convenience class that wraps the single-token deposit flow end-to-end:
29
+ * quoting, transaction building, and helper-PDA derivation.
30
+ *
31
+ * Most consumers don't need to instantiate this directly — they can call
32
+ * `CubicPoolClient.singleTokenDeposit.*` which proxies here.
33
+ */
34
+ export declare class SingleTokenDepositClient {
35
+ readonly config: CofferConfig;
36
+ readonly poolAddress: PublicKey;
37
+ private readonly poolClient;
38
+ constructor(params: SingleTokenDepositClientParams);
39
+ /** Derived helper PDA for this pool. */
40
+ helperPda(): PublicKey;
41
+ /** Ensure pool state is loaded; populates the underlying CubicPoolClient cache. */
42
+ sync(): Promise<SdkResult<PoolInfo>>;
43
+ /** Off-chain estimate of the deposit outcome. */
44
+ quote(tokenInIndex: number, amountIn: BN, slippageHundredthsBps?: number, nowSeconds?: number, helperBalances?: BN[]): SdkResult<SingleTokenDepositQuote>;
45
+ /**
46
+ * Build a ready-to-sign transaction. Includes idempotent helper-ATA
47
+ * creates.
48
+ *
49
+ * ⚠ Single-transaction form. It only fits for small pools — the ATA
50
+ * creates cost 5 CPI frames each and the zap itself uses 52 of the
51
+ * 64-frame budget at N=10. Use {@link buildTxs} for anything larger.
52
+ */
53
+ buildTx(params: SingleTokenDepositParams): SdkResult<BuiltTx>;
54
+ /**
55
+ * Build the deposit as two transactions: `setup` (idempotent ATA creates)
56
+ * then `deposit`. Required for large pools; safe for all of them.
57
+ *
58
+ * Send `setup` and let it confirm before sending `deposit` — an ALT
59
+ * cannot be referenced in the same slot it was extended, and the two
60
+ * legs must not share an instruction-trace budget.
61
+ */
62
+ buildTxs(params: SingleTokenDepositParams): SdkResult<{
63
+ setup: BuiltTx | null;
64
+ deposit: BuiltTx;
65
+ }>;
66
+ }
67
+ //# sourceMappingURL=SingleTokenDepositClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleTokenDepositClient.d.ts","sourceRoot":"","sources":["../../src/clients/SingleTokenDepositClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAW,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,OAAO,EACP,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,SAAS,CAAC;IACvB,qDAAqD;IACrD,GAAG,CAAC,EAAE,SAAS,GAAG;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,qBAAa,wBAAwB;IACnC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;gBAEjC,MAAM,EAAE,8BAA8B;IAkBlD,wCAAwC;IACxC,SAAS,IAAI,SAAS;IAItB,mFAAmF;IAC7E,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAI1C,iDAAiD;IACjD,KAAK,CACH,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,EAAE,EACZ,qBAAqB,CAAC,EAAE,MAAM,EAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,EAAE,EAAE,GACpB,SAAS,CAAC,uBAAuB,CAAC;IAIrC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC,OAAO,CAAC;IAkB7D;;;;;;;OAOG;IACH,QAAQ,CACN,MAAM,EAAE,wBAAwB,GAC/B,SAAS,CAAC;QAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAgB1D"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SingleTokenDepositClient = void 0;
4
+ const result_1 = require("../types/result");
5
+ const pda_1 = require("../utils/pda");
6
+ const tx_builders_1 = require("./tx-builders");
7
+ const CubicPoolClient_1 = require("./CubicPoolClient");
8
+ const extensions_1 = require("../utils/extensions");
9
+ function unsupportedMessage(pool, op) {
10
+ return `${op} refused: ${(pool.unsupportedTokenIndices ?? []).filter(i => !pool.tokens[i].actualBalance.isZero()).map((i) => (0, extensions_1.describeUnsupportedToken)(pool.tokens[i])).join("; ")}. The cubic-pool program cannot transfer such tokens.`;
11
+ }
12
+ /**
13
+ * Convenience class that wraps the single-token deposit flow end-to-end:
14
+ * quoting, transaction building, and helper-PDA derivation.
15
+ *
16
+ * Most consumers don't need to instantiate this directly — they can call
17
+ * `CubicPoolClient.singleTokenDeposit.*` which proxies here.
18
+ */
19
+ class SingleTokenDepositClient {
20
+ constructor(params) {
21
+ this.config = params.config;
22
+ this.poolAddress = params.poolAddress;
23
+ this.poolClient =
24
+ params.poolClient ??
25
+ new CubicPoolClient_1.CubicPoolClient({
26
+ config: params.config,
27
+ poolAddress: params.poolAddress,
28
+ rpc: params.rpc ??
29
+ {
30
+ endpoints: params.config.defaults.rpcEndpoints,
31
+ commitment: params.config.defaults.rpcCommitment,
32
+ timeoutMs: params.config.defaults.rpcTimeoutMs,
33
+ },
34
+ });
35
+ }
36
+ /** Derived helper PDA for this pool. */
37
+ helperPda() {
38
+ return (0, pda_1.deriveHelperPda)(this.config.programs.singleTokenLiquidity, this.poolAddress)[0];
39
+ }
40
+ /** Ensure pool state is loaded; populates the underlying CubicPoolClient cache. */
41
+ async sync() {
42
+ return this.poolClient.sync();
43
+ }
44
+ /** Off-chain estimate of the deposit outcome. */
45
+ quote(tokenInIndex, amountIn, slippageHundredthsBps, nowSeconds, helperBalances) {
46
+ return this.poolClient.quoteSingleTokenDeposit(tokenInIndex, amountIn, slippageHundredthsBps, nowSeconds, helperBalances);
47
+ }
48
+ /**
49
+ * Build a ready-to-sign transaction. Includes idempotent helper-ATA
50
+ * creates.
51
+ *
52
+ * ⚠ Single-transaction form. It only fits for small pools — the ATA
53
+ * creates cost 5 CPI frames each and the zap itself uses 52 of the
54
+ * 64-frame budget at N=10. Use {@link buildTxs} for anything larger.
55
+ */
56
+ buildTx(params) {
57
+ const pool = this.poolClient.getCached();
58
+ if (!pool)
59
+ return (0, result_1.err)("invalid_input", "Call sync() first to populate pool state");
60
+ if (!Number.isInteger(params.tokenInIndex) || params.tokenInIndex < 0 || params.tokenInIndex >= pool.tokenCount) {
61
+ return (0, result_1.err)("invalid_input", "Invalid tokenInIndex");
62
+ }
63
+ if (params.amountIn.lten(0))
64
+ return (0, result_1.err)("invalid_input", "amountIn must be > 0");
65
+ if ((pool.unsupportedTokenIndices ?? []).some(i => !pool.tokens[i].actualBalance.isZero())) {
66
+ return (0, result_1.err)("unsupported_token_extension", unsupportedMessage(pool, "deposit_single_token"));
67
+ }
68
+ try {
69
+ const tx = (0, tx_builders_1.buildSingleTokenDepositTx)(this.config, pool, params);
70
+ return (0, result_1.ok)(tx);
71
+ }
72
+ catch (e) {
73
+ return (0, result_1.err)("tx_build_failed", "Failed to build single-token deposit tx", e);
74
+ }
75
+ }
76
+ /**
77
+ * Build the deposit as two transactions: `setup` (idempotent ATA creates)
78
+ * then `deposit`. Required for large pools; safe for all of them.
79
+ *
80
+ * Send `setup` and let it confirm before sending `deposit` — an ALT
81
+ * cannot be referenced in the same slot it was extended, and the two
82
+ * legs must not share an instruction-trace budget.
83
+ */
84
+ buildTxs(params) {
85
+ const pool = this.poolClient.getCached();
86
+ if (!pool)
87
+ return (0, result_1.err)("invalid_input", "Call sync() first to populate pool state");
88
+ if (!Number.isInteger(params.tokenInIndex) || params.tokenInIndex < 0 || params.tokenInIndex >= pool.tokenCount) {
89
+ return (0, result_1.err)("invalid_input", "Invalid tokenInIndex");
90
+ }
91
+ if (params.amountIn.lten(0))
92
+ return (0, result_1.err)("invalid_input", "amountIn must be > 0");
93
+ if ((pool.unsupportedTokenIndices ?? []).some(i => !pool.tokens[i].actualBalance.isZero())) {
94
+ return (0, result_1.err)("unsupported_token_extension", unsupportedMessage(pool, "deposit_single_token"));
95
+ }
96
+ try {
97
+ return (0, result_1.ok)((0, tx_builders_1.buildSingleTokenDepositTxs)(this.config, pool, params));
98
+ }
99
+ catch (e) {
100
+ return (0, result_1.err)("tx_build_failed", "Failed to build single-token deposit txs", e);
101
+ }
102
+ }
103
+ }
104
+ exports.SingleTokenDepositClient = SingleTokenDepositClient;
105
+ //# sourceMappingURL=SingleTokenDepositClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleTokenDepositClient.js","sourceRoot":"","sources":["../../src/clients/SingleTokenDepositClient.ts"],"names":[],"mappings":"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"}