@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,482 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdminClient = exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID = void 0;
4
+ const anchor_1 = require("@coral-xyz/anchor");
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ const spl_token_1 = require("@solana/spl-token");
7
+ const idl_1 = require("../idl");
8
+ const contract_instructions_1 = require("./contract-instructions");
9
+ const tx_builders_1 = require("./tx-builders");
10
+ const pda_1 = require("../utils/pda");
11
+ /** Upstream BPF upgradeable loader; ProgramData PDA = findPda([programId]). */
12
+ exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID = new web3_js_1.PublicKey("BPFLoaderUpgradeab1e11111111111111111111111");
13
+ /**
14
+ * AdminClient — wraps `protocol_admin` with treasury-routed admin
15
+ * operations.
16
+ *
17
+ * The cubic_pool program enforces that every admin instruction must be
18
+ * signed by the Treasury PDA (`seeds = [b"treasury"]`, owned by
19
+ * protocol_admin). This client builds the canonical flow:
20
+ *
21
+ * admin wallet
22
+ * → protocol_admin.<wrapper> (treasury.admin == signer)
23
+ * → CPI cubic_pool.<admin_ix> (signer == TREASURY_PDA)
24
+ *
25
+ * Direct calls into cubic_pool admin instructions will fail on-chain.
26
+ *
27
+ * Instruction methods return a `TransactionInstruction` (or a Promise of it). Compose into a tx
28
+ * with `@solana/web3.js` and sign with the admin wallet.
29
+ *
30
+ * The deployed audit-fixes-excluded-SF contract allows the supervisor to
31
+ * freeze AND unfreeze pools and to deactivate AND reactivate tokens. Other
32
+ * administrative operations require treasury.admin. This is not a freeze-only
33
+ * supervisor model.
34
+
35
+ */
36
+ class AdminClient {
37
+ constructor(opts) {
38
+ const { config, provider } = opts;
39
+ this.config = config;
40
+ const idl = JSON.parse(JSON.stringify(idl_1.PROTOCOL_ADMIN_IDL));
41
+ idl.address = config.programs.protocolAdmin.toString();
42
+ this.program = new anchor_1.Program(idl, provider);
43
+ this.cubicPoolProgramId = config.programs.cubicPool;
44
+ this.stldProgramId = config.programs.singleTokenLiquidity;
45
+ [this.treasuryPda] = (0, pda_1.deriveTreasuryPda)(config.programs.protocolAdmin);
46
+ }
47
+ /**
48
+ * ProgramData PDA of the protocol-admin program itself, under the
49
+ * upgradeable BPF loader. `initialize` is gated on it (audit L-5): only
50
+ * the key that can upgrade the program may bootstrap its Treasury.
51
+ */
52
+ programDataPda() {
53
+ const [programData] = web3_js_1.PublicKey.findProgramAddressSync([this.program.programId.toBuffer()], exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID);
54
+ return programData;
55
+ }
56
+ /**
57
+ * Idempotent treasury init. Returns true if a new treasury was created.
58
+ * `admin` becomes the initial `treasury.admin`.
59
+ *
60
+ * ⚠ v5.1 (audit L-5) added the `program_data` account: the signer must be
61
+ * the protocol-admin program's current upgrade authority, otherwise this
62
+ * reverts. `admin` may not be the all-zero pubkey (`InvalidAdmin`, 6009).
63
+ */
64
+ async initializeTreasuryIfMissing(connection, admin, payer = admin) {
65
+ const info = await connection.getAccountInfo(this.treasuryPda);
66
+ if (info)
67
+ return false;
68
+ if (admin.equals(web3_js_1.PublicKey.default)) {
69
+ throw new Error("AdminClient: admin cannot be the default (all-zero) pubkey");
70
+ }
71
+ await this.program.methods
72
+ .initialize(admin)
73
+ .accounts({
74
+ treasury: this.treasuryPda,
75
+ payer,
76
+ programData: this.programDataPda(),
77
+ systemProgram: web3_js_1.SystemProgram.programId,
78
+ })
79
+ .rpc();
80
+ return true;
81
+ }
82
+ // ── Admin lifecycle ──────────────────────────────────────────────────────
83
+ initiateAdminTransferIx(admin, newAdmin) {
84
+ return this.program.methods
85
+ .initiateAdminTransfer(newAdmin)
86
+ .accounts({ treasury: this.treasuryPda, admin })
87
+ .instruction();
88
+ }
89
+ acceptAdminTransferIx(newAdmin) {
90
+ return this.program.methods
91
+ .acceptAdminTransfer()
92
+ .accounts({ treasury: this.treasuryPda, newAdmin })
93
+ .instruction();
94
+ }
95
+ cancelAdminTransferIx(admin) {
96
+ return this.program.methods
97
+ .cancelAdminTransfer()
98
+ .accounts({ treasury: this.treasuryPda, admin })
99
+ .instruction();
100
+ }
101
+ // ── Treasury vault management ────────────────────────────────────────────
102
+ registerTokenIx(admin, mint, tokenProgram = spl_token_1.TOKEN_PROGRAM_ID) {
103
+ if (!tokenProgram.equals(spl_token_1.TOKEN_PROGRAM_ID))
104
+ throw new Error("Treasury vaults only support classic SPL Token in this deployment");
105
+ const [vault] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("vault"), mint.toBuffer()], this.program.programId);
106
+ return this.program.methods
107
+ .registerToken()
108
+ .accounts({
109
+ treasury: this.treasuryPda,
110
+ mint,
111
+ vault,
112
+ admin,
113
+ tokenProgram,
114
+ systemProgram: web3_js_1.SystemProgram.programId,
115
+ })
116
+ .instruction();
117
+ }
118
+ /**
119
+ * Withdraw from a registered treasury vault.
120
+ *
121
+ * Treasury vaults use classic SPL Token in this deployed build. The mint
122
+ * argument derives the vault PDA; it is not an account in the instruction.
123
+ */
124
+ withdrawIx(admin, mint, recipient, amount, tokenProgram = spl_token_1.TOKEN_PROGRAM_ID) {
125
+ if (!tokenProgram.equals(spl_token_1.TOKEN_PROGRAM_ID))
126
+ throw new Error("Treasury vaults only support classic SPL Token in this deployment");
127
+ const [vault] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("vault"), mint.toBuffer()], this.program.programId);
128
+ return this.program.methods
129
+ .withdraw(amount)
130
+ .accounts({
131
+ treasury: this.treasuryPda,
132
+ vault,
133
+ recipient,
134
+ admin,
135
+ tokenProgram,
136
+ })
137
+ .instruction();
138
+ }
139
+ // ── Program upgrade authority ────────────────────────────────────────────
140
+ /**
141
+ * Hand the upgrade authority for `program` to `newAuthority`.
142
+ *
143
+ * ⚠ v5.1 (audit M-3) removed the `new_authority` ARGUMENT and made it an
144
+ * ACCOUNT that must **co-sign**: the loader's `SetAuthorityChecked` is
145
+ * used so a mistyped destination cannot take the authority
146
+ * irrecoverably. The returned instruction therefore has two required
147
+ * signers — the current `admin` and `newAuthority`. Both must sign the
148
+ * transaction or it fails signature verification before it ever reaches
149
+ * the program.
150
+ */
151
+ transferUpgradeAuthorityIx(admin, program, newAuthority) {
152
+ const [programdata] = web3_js_1.PublicKey.findProgramAddressSync([program.toBuffer()], exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID);
153
+ return this.program.methods
154
+ .transferUpgradeAuthority()
155
+ .accounts({
156
+ treasury: this.treasuryPda,
157
+ admin,
158
+ program,
159
+ programdata,
160
+ newAuthority,
161
+ bpfLoaderUpgradeable: exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID,
162
+ })
163
+ .instruction();
164
+ }
165
+ /**
166
+ * Make `program` permanently non-upgradeable.
167
+ *
168
+ * ⚠ v5.1 (audit M-3) dropped `new_authority_info` and added `program`:
169
+ * the account list is `[treasury, admin, program, programdata,
170
+ * bpf_loader_upgradeable]`. This is irreversible.
171
+ */
172
+ freezePoolProgramIx(admin, program) {
173
+ const [programdata] = web3_js_1.PublicKey.findProgramAddressSync([program.toBuffer()], exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID);
174
+ return this.program.methods
175
+ .freezePoolProgram()
176
+ .accounts({
177
+ treasury: this.treasuryPda,
178
+ admin,
179
+ program,
180
+ programdata,
181
+ bpfLoaderUpgradeable: exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID,
182
+ })
183
+ .instruction();
184
+ }
185
+ // ── Pool config / pool admin (treasury-routed) ───────────────────────────
186
+ poolInitializeConfigIx(admin, config, defaultProtocolFeeRate) {
187
+ return this.program.methods
188
+ .poolInitializeConfig(defaultProtocolFeeRate)
189
+ .accounts({
190
+ treasury: this.treasuryPda,
191
+ admin,
192
+ config,
193
+ cubicPoolProgram: this.cubicPoolProgramId,
194
+ systemProgram: web3_js_1.SystemProgram.programId,
195
+ })
196
+ .instruction();
197
+ }
198
+ // setSwapFeeRate has been removed from the protocol-admin wrapper —
199
+ // it's a level-1 (pool-admin) instruction, signed directly by the
200
+ // wallet stored in `pool.pool_admin`. Use buildSetSwapFeeRateIx instead.
201
+ setProtocolFeeRateIx(admin, config, pool, protocolFeeRate) {
202
+ return this.program.methods
203
+ .poolSetProtocolFeeRate(protocolFeeRate)
204
+ .accounts({ ...this.poolAdminAccounts(admin, config, pool) })
205
+ .instruction();
206
+ }
207
+ setPoolEnabledIx(admin, config, pool, enabled) {
208
+ return this.program.methods
209
+ .poolSetPoolEnabled(enabled)
210
+ .accounts({ ...this.poolAdminAccounts(admin, config, pool) })
211
+ .instruction();
212
+ }
213
+ setSwapsEnabledIx(admin, config, pool, enabled) {
214
+ return this.program.methods
215
+ .poolSetSwapsEnabled(enabled)
216
+ .accounts({ ...this.poolAdminAccounts(admin, config, pool) })
217
+ .instruction();
218
+ }
219
+ /**
220
+ * Update a config's Token-2022 extension policy.
221
+ *
222
+ * ⚠ v5.1 (audit H-5) added a second REQUIRED argument,
223
+ * `hardBannedExtensions`. Two distinct bitmaps:
224
+ *
225
+ * - `banned` — the config's default policy, inherited by new pools that
226
+ * do not pass their own override. A pool creator may override it in
227
+ * either direction.
228
+ * - `hardBanned` — the protocol floor. It is OR-ed into every pool's
229
+ * effective bitmap at creation and a creator override can never clear
230
+ * it. This is what keeps `PermanentDelegate` / `TransferHook` mints out
231
+ * of vault custody regardless of what a pool creator chooses.
232
+ *
233
+ * Loosening `hardBanned` is a protocol-wide safety decision, not a
234
+ * routine config tweak.
235
+ */
236
+ setBannedExtensionsIx(admin, config, banned, hardBanned) {
237
+ if (hardBanned === undefined) {
238
+ throw new Error("AdminClient.setBannedExtensionsIx: hardBanned is required as of v5.1. " +
239
+ "Pass the config's current hard_banned_extensions to leave the floor unchanged.");
240
+ }
241
+ return this.program.methods
242
+ .poolSetBannedExtensions(banned, hardBanned)
243
+ .accounts({
244
+ treasury: this.treasuryPda,
245
+ admin,
246
+ config,
247
+ cubicPoolProgram: this.cubicPoolProgramId,
248
+ })
249
+ .instruction();
250
+ }
251
+ /**
252
+ * Migrate a pool account from the v4 storage layout to v5.
253
+ *
254
+ * ⚠ v5.1 (audit H-7) added `reactivateTokens` and this instruction is no
255
+ * longer a no-op — it mutates pool state.
256
+ *
257
+ * @param reactivateTokens Pass `true` ONLY on the one-shot v4 → v5 pass.
258
+ * On any later call `true` silently re-opens every token that was
259
+ * deliberately disabled via `set_token_active`, undoing a circuit
260
+ * breaker. Default is `false` for that reason.
261
+ */
262
+ migratePoolToV5Ix(admin, config, pool, reactivateTokens = false) {
263
+ return this.program.methods
264
+ .poolMigrateToV5(reactivateTokens)
265
+ .accounts({
266
+ treasury: this.treasuryPda,
267
+ admin,
268
+ pool,
269
+ config,
270
+ systemProgram: web3_js_1.SystemProgram.programId,
271
+ cubicPoolProgram: this.cubicPoolProgramId,
272
+ })
273
+ .instruction();
274
+ }
275
+ /**
276
+ * Drain lamports from a single-token-liquidity helper PDA.
277
+ *
278
+ * ⚠ v5.1 (audit L-8 / SF-12) added the `pool` and `system_program`
279
+ * accounts. `pool` is not merely a seed source: the program checks it
280
+ * belongs to `config`, closing the hole where the admin of one config
281
+ * could drain a helper governed by another.
282
+ */
283
+ stldWithdrawSolIx(admin, config, pool, source, recipient, amount) {
284
+ return this.program.methods
285
+ .stldWithdrawSol(amount)
286
+ .accounts({
287
+ treasury: this.treasuryPda,
288
+ admin,
289
+ config,
290
+ pool,
291
+ source,
292
+ recipient,
293
+ systemProgram: web3_js_1.SystemProgram.programId,
294
+ stldProgram: this.stldProgramId,
295
+ })
296
+ .instruction();
297
+ }
298
+ // ── Circuit breaker (admin OR supervisor) ────────────────────────────────
299
+ /**
300
+ * Batch-freeze pools. `pairs` are `[config, pool]` tuples passed via
301
+ * remaining_accounts.
302
+ *
303
+ * Authority: treasury.admin or treasury.supervisor. Both directions are
304
+ * permitted by the deployed audit-fixes-excluded-SF contract.
305
+ */
306
+ freezePoolsIx(authority, pairs) {
307
+ return this.program.methods
308
+ .freezePools()
309
+ .accounts({
310
+ treasury: this.treasuryPda,
311
+ authority,
312
+ cubicPoolProgram: this.cubicPoolProgramId,
313
+ })
314
+ .remainingAccounts(this.configPoolRemaining(pairs, /* poolWritable */ true))
315
+ .instruction();
316
+ }
317
+ /**
318
+ * Batch-unfreeze pools — mirror of {@link freezePoolsIx}.
319
+ *
320
+ * The deployed contract permits either treasury.admin or treasury.supervisor.
321
+ */
322
+ unfreezePoolsIx(admin, pairs) {
323
+ return this.program.methods
324
+ .unfreezePools()
325
+ .accounts({
326
+ treasury: this.treasuryPda,
327
+ authority: admin,
328
+ cubicPoolProgram: this.cubicPoolProgramId,
329
+ })
330
+ .remainingAccounts(this.configPoolRemaining(pairs, /* poolWritable */ true))
331
+ .instruction();
332
+ }
333
+ /**
334
+ * Flip a token's input kill switch on a pool.
335
+ *
336
+ * Both admin and supervisor may set either value in the deployed build.
337
+ */
338
+ setTokenActiveIx(authority, config, pool, tokenIndex, isActive) {
339
+ return this.program.methods
340
+ .poolSetTokenActive(tokenIndex, isActive)
341
+ .accounts({
342
+ treasury: this.treasuryPda,
343
+ authority,
344
+ config,
345
+ pool,
346
+ cubicPoolProgram: this.cubicPoolProgramId,
347
+ })
348
+ .instruction();
349
+ }
350
+ /**
351
+ * Set or revoke the supervisor pubkey. Admin only. Pass
352
+ * `PublicKey.default` to revoke.
353
+ *
354
+ * The supervisor may freeze/unfreeze pools and set token activity in either
355
+ * direction. Setting or revoking a supervisor remains admin-only.
356
+ */
357
+ setSupervisorIx(admin, newSupervisor) {
358
+ return this.program.methods
359
+ .setSupervisor(newSupervisor)
360
+ .accounts({
361
+ treasury: this.treasuryPda,
362
+ admin,
363
+ systemProgram: web3_js_1.SystemProgram.programId,
364
+ })
365
+ .instruction();
366
+ }
367
+ /**
368
+ * Collects protocol fees from a pool to the supplied recipient ATAs.
369
+ *
370
+ * `vaults` / `recipients` / `tokenPrograms` must be aligned with
371
+ * `pool.token_mints` (one entry per token in pool order).
372
+ */
373
+ collectProtocolFeesIx(admin, config, pool, vaults, recipients, tokenPrograms = vaults.map(() => spl_token_1.TOKEN_PROGRAM_ID)) {
374
+ const remaining = this.tripleRemaining(vaults, recipients, tokenPrograms);
375
+ return this.program.methods
376
+ .poolCollectProtocolFees()
377
+ .accounts({ ...this.poolAdminAccounts(admin, config, pool) })
378
+ .remainingAccounts(remaining)
379
+ .instruction();
380
+ }
381
+ /**
382
+ * Emergency drain. Pool must be paused first. `amounts.length` must equal
383
+ * the pool's token_count; pass 0 to skip a token.
384
+ */
385
+ debugWithdrawLiquidityIx(admin, config, pool, amounts, vaults, recipients, tokenPrograms = vaults.map(() => spl_token_1.TOKEN_PROGRAM_ID)) {
386
+ const remaining = this.tripleRemaining(vaults, recipients, tokenPrograms);
387
+ return this.program.methods
388
+ .poolDebugWithdrawLiquidity(amounts)
389
+ .accounts({ ...this.poolAdminAccounts(admin, config, pool) })
390
+ .remainingAccounts(remaining)
391
+ .instruction();
392
+ }
393
+ /** Build Treasury initialization without sending. Payer must be the current
394
+ * protocol-admin upgrade authority; the assigned admin may be a different key.
395
+ */
396
+ initializeTreasuryIx(payer, admin) {
397
+ if (admin.equals(web3_js_1.PublicKey.default))
398
+ throw new Error("Admin cannot be the default pubkey");
399
+ return (0, contract_instructions_1.buildContractInstruction)(this.config, "protocolAdmin", "initialize", { admin }, {
400
+ treasury: this.treasuryPda, payer, program_data: this.programDataPda(), system_program: web3_js_1.SystemProgram.programId,
401
+ });
402
+ }
403
+ upgradePoolProgramIx(admin, program, buffer, spill) {
404
+ return (0, contract_instructions_1.buildContractInstruction)(this.config, "protocolAdmin", "upgrade_pool_program", {}, {
405
+ treasury: this.treasuryPda, admin, programdata: this.deriveProgramData(program),
406
+ program_to_upgrade: program, buffer, spill, rent: web3_js_1.SYSVAR_RENT_PUBKEY,
407
+ clock: web3_js_1.SYSVAR_CLOCK_PUBKEY, bpf_loader_upgradeable: exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID,
408
+ });
409
+ }
410
+ /** Closing a program disables it and returns its storage balance. */
411
+ closePoolProgramIx(admin, program, recipient) {
412
+ return (0, contract_instructions_1.buildContractInstruction)(this.config, "protocolAdmin", "close_pool_program", {}, {
413
+ treasury: this.treasuryPda, admin, programdata: this.deriveProgramData(program),
414
+ program_to_close: program, recipient, bpf_loader_upgradeable: exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID,
415
+ });
416
+ }
417
+ withdrawSolIx(admin, recipient, amount) {
418
+ return (0, contract_instructions_1.buildContractInstruction)(this.config, "protocolAdmin", "withdraw_sol", { amount }, { treasury: this.treasuryPda, admin, recipient });
419
+ }
420
+ poolWithdrawSolIx(admin, config, source, recipient, amount) {
421
+ return (0, contract_instructions_1.buildContractInstruction)(this.config, "protocolAdmin", "pool_withdraw_sol", { amount }, {
422
+ treasury: this.treasuryPda, admin, config, source, recipient, cubic_pool_program: this.cubicPoolProgramId,
423
+ });
424
+ }
425
+ poolInitializeAltIx(admin, config, pool, recentSlot) {
426
+ return (0, contract_instructions_1.buildContractInstruction)(this.config, "protocolAdmin", "pool_initialize_alt", { recent_slot: recentSlot }, {
427
+ treasury: this.treasuryPda, admin, pool, config,
428
+ lookup_table: (0, tx_builders_1.deriveAltAddress)(this.treasuryPda, recentSlot), system_program: web3_js_1.SystemProgram.programId,
429
+ alt_program: web3_js_1.AddressLookupTableProgram.programId, cubic_pool_program: this.cubicPoolProgramId,
430
+ });
431
+ }
432
+ poolInitiateProtocolAdminTransferIx(admin, config, newAdmin) {
433
+ return (0, contract_instructions_1.buildContractInstruction)(this.config, "protocolAdmin", "pool_initiate_protocol_admin_transfer", { new_admin: newAdmin }, {
434
+ treasury: this.treasuryPda, admin, config, cubic_pool_program: this.cubicPoolProgramId,
435
+ });
436
+ }
437
+ poolAcceptProtocolAdminTransferIx(admin, config) {
438
+ return (0, contract_instructions_1.buildContractInstruction)(this.config, "protocolAdmin", "pool_accept_protocol_admin_transfer", {}, {
439
+ treasury: this.treasuryPda, admin, config, cubic_pool_program: this.cubicPoolProgramId,
440
+ });
441
+ }
442
+ poolCancelProtocolAdminTransferIx(admin, config) {
443
+ return (0, contract_instructions_1.buildContractInstruction)(this.config, "protocolAdmin", "pool_cancel_protocol_admin_transfer", {}, {
444
+ treasury: this.treasuryPda, admin, config, cubic_pool_program: this.cubicPoolProgramId,
445
+ });
446
+ }
447
+ deriveProgramData(program) {
448
+ return web3_js_1.PublicKey.findProgramAddressSync([program.toBuffer()], exports.BPF_LOADER_UPGRADEABLE_PROGRAM_ID)[0];
449
+ }
450
+ // ── Internals ────────────────────────────────────────────────────────────
451
+ poolAdminAccounts(admin, config, pool) {
452
+ return {
453
+ treasury: this.treasuryPda,
454
+ admin,
455
+ config,
456
+ pool,
457
+ cubicPoolProgram: this.cubicPoolProgramId,
458
+ };
459
+ }
460
+ configPoolRemaining(pairs, poolWritable) {
461
+ const acc = [];
462
+ for (const { config, pool } of pairs) {
463
+ acc.push({ pubkey: config, isSigner: false, isWritable: false });
464
+ acc.push({ pubkey: pool, isSigner: false, isWritable: poolWritable });
465
+ }
466
+ return acc;
467
+ }
468
+ tripleRemaining(vaults, recipients, tokenPrograms) {
469
+ if (vaults.length !== recipients.length || vaults.length !== tokenPrograms.length) {
470
+ throw new Error("AdminClient: vaults/recipients/tokenPrograms must be the same length");
471
+ }
472
+ const acc = [];
473
+ for (let i = 0; i < vaults.length; i++) {
474
+ acc.push({ pubkey: vaults[i], isSigner: false, isWritable: true });
475
+ acc.push({ pubkey: recipients[i], isSigner: false, isWritable: true });
476
+ acc.push({ pubkey: tokenPrograms[i], isSigner: false, isWritable: false });
477
+ }
478
+ return acc;
479
+ }
480
+ }
481
+ exports.AdminClient = AdminClient;
482
+ //# sourceMappingURL=AdminClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminClient.js","sourceRoot":"","sources":["../../src/clients/AdminClient.ts"],"names":[],"mappings":"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"}