@exponent-labs/exponent-sdk 0.9.0 → 0.9.2

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 (155) hide show
  1. package/build/client/vaults/index.d.ts +2 -0
  2. package/build/client/vaults/index.js +2 -0
  3. package/build/client/vaults/index.js.map +1 -1
  4. package/build/client/vaults/types/index.d.ts +2 -0
  5. package/build/client/vaults/types/index.js +2 -0
  6. package/build/client/vaults/types/index.js.map +1 -1
  7. package/build/client/vaults/types/kaminoFarmEntry.d.ts +15 -0
  8. package/build/client/vaults/types/kaminoFarmEntry.js +17 -0
  9. package/build/client/vaults/types/kaminoFarmEntry.js.map +1 -0
  10. package/build/client/vaults/types/kaminoObligationEntry.d.ts +21 -4
  11. package/build/client/vaults/types/kaminoObligationEntry.js +2 -1
  12. package/build/client/vaults/types/kaminoObligationEntry.js.map +1 -1
  13. package/build/client/vaults/types/positionUpdate.d.ts +9 -0
  14. package/build/client/vaults/types/positionUpdate.js +23 -0
  15. package/build/client/vaults/types/positionUpdate.js.map +1 -1
  16. package/build/client/vaults/types/proposalAction.js +0 -3
  17. package/build/client/vaults/types/proposalAction.js.map +1 -1
  18. package/build/client/vaults/types/reserveFarmMapping.d.ts +19 -0
  19. package/build/client/vaults/types/reserveFarmMapping.js +18 -0
  20. package/build/client/vaults/types/reserveFarmMapping.js.map +1 -0
  21. package/build/client/vaults/types/strategyPosition.d.ts +5 -0
  22. package/build/client/vaults/types/strategyPosition.js +5 -0
  23. package/build/client/vaults/types/strategyPosition.js.map +1 -1
  24. package/build/exponentVaults/aumCalculator.d.ts +25 -4
  25. package/build/exponentVaults/aumCalculator.js +236 -15
  26. package/build/exponentVaults/aumCalculator.js.map +1 -1
  27. package/build/exponentVaults/fetcher.d.ts +52 -0
  28. package/build/exponentVaults/fetcher.js +199 -0
  29. package/build/exponentVaults/fetcher.js.map +1 -0
  30. package/build/exponentVaults/index.d.ts +10 -9
  31. package/build/exponentVaults/index.js +26 -8
  32. package/build/exponentVaults/index.js.map +1 -1
  33. package/build/exponentVaults/kamino-farms.d.ts +144 -0
  34. package/build/exponentVaults/kamino-farms.js +396 -0
  35. package/build/exponentVaults/kamino-farms.js.map +1 -0
  36. package/build/exponentVaults/loopscale/client.d.ts +240 -0
  37. package/build/exponentVaults/loopscale/client.js +590 -0
  38. package/build/exponentVaults/loopscale/client.js.map +1 -0
  39. package/build/exponentVaults/loopscale/client.test.d.ts +1 -0
  40. package/build/exponentVaults/loopscale/client.test.js +183 -0
  41. package/build/exponentVaults/loopscale/client.test.js.map +1 -0
  42. package/build/exponentVaults/loopscale/helpers.d.ts +29 -0
  43. package/build/exponentVaults/loopscale/helpers.js +119 -0
  44. package/build/exponentVaults/loopscale/helpers.js.map +1 -0
  45. package/build/exponentVaults/loopscale/index.d.ts +3 -0
  46. package/build/exponentVaults/loopscale/index.js +12 -0
  47. package/build/exponentVaults/loopscale/index.js.map +1 -0
  48. package/build/exponentVaults/loopscale/prepared-transactions.d.ts +13 -0
  49. package/build/exponentVaults/loopscale/prepared-transactions.js +271 -0
  50. package/build/exponentVaults/loopscale/prepared-transactions.js.map +1 -0
  51. package/build/exponentVaults/loopscale/prepared-transactions.test.d.ts +1 -0
  52. package/build/exponentVaults/loopscale/prepared-transactions.test.js +400 -0
  53. package/build/exponentVaults/loopscale/prepared-transactions.test.js.map +1 -0
  54. package/build/exponentVaults/loopscale/prepared-types.d.ts +62 -0
  55. package/build/exponentVaults/loopscale/prepared-types.js +3 -0
  56. package/build/exponentVaults/loopscale/prepared-types.js.map +1 -0
  57. package/build/exponentVaults/loopscale/response-plan.d.ts +69 -0
  58. package/build/exponentVaults/loopscale/response-plan.js +141 -0
  59. package/build/exponentVaults/loopscale/response-plan.js.map +1 -0
  60. package/build/exponentVaults/loopscale/response-plan.test.d.ts +1 -0
  61. package/build/exponentVaults/loopscale/response-plan.test.js +139 -0
  62. package/build/exponentVaults/loopscale/response-plan.test.js.map +1 -0
  63. package/build/exponentVaults/loopscale/send-plan.d.ts +75 -0
  64. package/build/exponentVaults/loopscale/send-plan.js +235 -0
  65. package/build/exponentVaults/loopscale/send-plan.js.map +1 -0
  66. package/build/exponentVaults/loopscale/types.d.ts +443 -0
  67. package/build/exponentVaults/loopscale/types.js +3 -0
  68. package/build/exponentVaults/loopscale/types.js.map +1 -0
  69. package/build/exponentVaults/loopscale-client.d.ts +113 -524
  70. package/build/exponentVaults/loopscale-client.js +296 -539
  71. package/build/exponentVaults/loopscale-client.js.map +1 -1
  72. package/build/exponentVaults/loopscale-client.test.d.ts +1 -0
  73. package/build/exponentVaults/loopscale-client.test.js +162 -0
  74. package/build/exponentVaults/loopscale-client.test.js.map +1 -0
  75. package/build/exponentVaults/loopscale-client.types.d.ts +425 -0
  76. package/build/exponentVaults/loopscale-client.types.js +3 -0
  77. package/build/exponentVaults/loopscale-client.types.js.map +1 -0
  78. package/build/exponentVaults/loopscale-execution.d.ts +125 -0
  79. package/build/exponentVaults/loopscale-execution.js +341 -0
  80. package/build/exponentVaults/loopscale-execution.js.map +1 -0
  81. package/build/exponentVaults/loopscale-execution.test.d.ts +1 -0
  82. package/build/exponentVaults/loopscale-execution.test.js +139 -0
  83. package/build/exponentVaults/loopscale-execution.test.js.map +1 -0
  84. package/build/exponentVaults/loopscale-vault.d.ts +115 -0
  85. package/build/exponentVaults/loopscale-vault.js +275 -0
  86. package/build/exponentVaults/loopscale-vault.js.map +1 -0
  87. package/build/exponentVaults/loopscale-vault.test.d.ts +1 -0
  88. package/build/exponentVaults/loopscale-vault.test.js +102 -0
  89. package/build/exponentVaults/loopscale-vault.test.js.map +1 -0
  90. package/build/exponentVaults/policyBuilders.d.ts +62 -0
  91. package/build/exponentVaults/policyBuilders.js +119 -2
  92. package/build/exponentVaults/policyBuilders.js.map +1 -1
  93. package/build/exponentVaults/pricePathResolver.d.ts +45 -0
  94. package/build/exponentVaults/pricePathResolver.js +198 -0
  95. package/build/exponentVaults/pricePathResolver.js.map +1 -0
  96. package/build/exponentVaults/pricePathResolver.test.d.ts +1 -0
  97. package/build/exponentVaults/pricePathResolver.test.js +369 -0
  98. package/build/exponentVaults/pricePathResolver.test.js.map +1 -0
  99. package/build/exponentVaults/syncTransaction.js +4 -1
  100. package/build/exponentVaults/syncTransaction.js.map +1 -1
  101. package/build/exponentVaults/titan-quote.js +170 -36
  102. package/build/exponentVaults/titan-quote.js.map +1 -1
  103. package/build/exponentVaults/vault-instruction-types.d.ts +363 -0
  104. package/build/exponentVaults/vault-instruction-types.js +128 -0
  105. package/build/exponentVaults/vault-instruction-types.js.map +1 -0
  106. package/build/exponentVaults/vault-interaction.d.ts +203 -343
  107. package/build/exponentVaults/vault-interaction.js +1894 -426
  108. package/build/exponentVaults/vault-interaction.js.map +1 -1
  109. package/build/exponentVaults/vault-interaction.kamino-vault.test.d.ts +1 -0
  110. package/build/exponentVaults/vault-interaction.kamino-vault.test.js +143 -0
  111. package/build/exponentVaults/vault-interaction.kamino-vault.test.js.map +1 -0
  112. package/build/exponentVaults/vault.d.ts +51 -2
  113. package/build/exponentVaults/vault.js +324 -48
  114. package/build/exponentVaults/vault.js.map +1 -1
  115. package/build/exponentVaults/vaultTransactionBuilder.d.ts +100 -134
  116. package/build/exponentVaults/vaultTransactionBuilder.js +383 -285
  117. package/build/exponentVaults/vaultTransactionBuilder.js.map +1 -1
  118. package/build/exponentVaults/vaultTransactionBuilder.test.d.ts +1 -0
  119. package/build/exponentVaults/vaultTransactionBuilder.test.js +297 -0
  120. package/build/exponentVaults/vaultTransactionBuilder.test.js.map +1 -0
  121. package/build/marketThree.d.ts +6 -2
  122. package/build/marketThree.js +10 -8
  123. package/build/marketThree.js.map +1 -1
  124. package/package.json +34 -32
  125. package/src/client/vaults/index.ts +2 -0
  126. package/src/client/vaults/types/index.ts +2 -0
  127. package/src/client/vaults/types/kaminoFarmEntry.ts +32 -0
  128. package/src/client/vaults/types/kaminoObligationEntry.ts +6 -3
  129. package/src/client/vaults/types/positionUpdate.ts +62 -0
  130. package/src/client/vaults/types/proposalAction.ts +0 -3
  131. package/src/client/vaults/types/reserveFarmMapping.ts +35 -0
  132. package/src/client/vaults/types/strategyPosition.ts +18 -1
  133. package/src/exponentVaults/aumCalculator.ts +353 -16
  134. package/src/exponentVaults/fetcher.ts +257 -0
  135. package/src/exponentVaults/index.ts +65 -40
  136. package/src/exponentVaults/kamino-farms.ts +538 -0
  137. package/src/exponentVaults/loopscale/client.ts +808 -0
  138. package/src/exponentVaults/loopscale/helpers.ts +172 -0
  139. package/src/exponentVaults/loopscale/index.ts +57 -0
  140. package/src/exponentVaults/loopscale/prepared-transactions.ts +435 -0
  141. package/src/exponentVaults/loopscale/prepared-types.ts +73 -0
  142. package/src/exponentVaults/loopscale/types.ts +466 -0
  143. package/src/exponentVaults/policyBuilders.ts +170 -0
  144. package/src/exponentVaults/pricePathResolver.test.ts +466 -0
  145. package/src/exponentVaults/pricePathResolver.ts +273 -0
  146. package/src/exponentVaults/syncTransaction.ts +6 -1
  147. package/src/exponentVaults/titan-quote.ts +231 -45
  148. package/src/exponentVaults/vault-instruction-types.ts +493 -0
  149. package/src/exponentVaults/vault-interaction.kamino-vault.test.ts +149 -0
  150. package/src/exponentVaults/vault-interaction.ts +2818 -799
  151. package/src/exponentVaults/vault.ts +474 -63
  152. package/src/exponentVaults/vaultTransactionBuilder.test.ts +349 -0
  153. package/src/exponentVaults/vaultTransactionBuilder.ts +581 -433
  154. package/src/marketThree.ts +14 -6
  155. package/src/exponentVaults/loopscale-client.ts +0 -1373
@@ -0,0 +1,443 @@
1
+ import type { Connection, PublicKey } from "@solana/web3.js";
2
+ /**
3
+ * Configuration for creating a {@link LoopscaleClient}.
4
+ *
5
+ * Import the runtime client from `client.ts` or the package barrel.
6
+ */
7
+ export interface LoopscaleClientConfig {
8
+ /** Solana RPC connection used for transaction decoding helpers. */
9
+ connection: Connection;
10
+ /** Default wallet address used for `user-wallet` / `User-Wallet` headers. */
11
+ userWallet: PublicKey | string;
12
+ /** Optional default fee payer for Loopscale transaction endpoints. Defaults to `userWallet`. */
13
+ payer?: PublicKey | string;
14
+ /** Base URL for the Loopscale API. */
15
+ baseUrl?: string;
16
+ /** Enable verbose request/response logging. */
17
+ debug?: boolean;
18
+ }
19
+ /**
20
+ * Signature metadata returned by Loopscale for a versioned transaction message.
21
+ */
22
+ export interface LoopscaleTransactionSignature {
23
+ /** Base58 public key of the signer. */
24
+ publicKey: string;
25
+ /** Base64-encoded 64-byte ed25519 signature. */
26
+ signature: string;
27
+ }
28
+ /**
29
+ * Raw versioned transaction response returned by most Loopscale transaction endpoints.
30
+ */
31
+ export interface LoopscaleVersionedTransactionResponse {
32
+ /** Base64-encoded versioned transaction message. */
33
+ message: string;
34
+ /** Pre-signed signatures already attached by Loopscale. */
35
+ signatures: LoopscaleTransactionSignature[];
36
+ }
37
+ /**
38
+ * Raw batch transaction response returned by multi-transaction Loopscale endpoints.
39
+ */
40
+ export type LoopscaleVersionedTransactionBatchResponse = LoopscaleVersionedTransactionResponse[];
41
+ /**
42
+ * Minimal post-transaction loan snapshot returned by some Loopscale loan endpoints.
43
+ */
44
+ export interface LoopscaleExpectedLoanInfo {
45
+ loan?: {
46
+ address?: string;
47
+ [key: string]: unknown;
48
+ };
49
+ [key: string]: unknown;
50
+ }
51
+ /**
52
+ * Multi-transaction loan response returned by some Loopscale loan endpoints.
53
+ */
54
+ export interface LoopscaleTransactionsResponse {
55
+ /** One or more serialized transactions returned by Loopscale. */
56
+ transactions: LoopscaleVersionedTransactionResponse[];
57
+ /** Optional post-transaction loan snapshot. */
58
+ expectedLoanInfo?: LoopscaleExpectedLoanInfo;
59
+ }
60
+ /**
61
+ * Raw loan transaction response returned by CPI-compatible loan endpoints.
62
+ */
63
+ export type LoopscaleLoanTransactionResponse = LoopscaleVersionedTransactionResponse | LoopscaleTransactionsResponse;
64
+ /**
65
+ * Raw response returned by Loopscale loan creation.
66
+ */
67
+ export interface LoopscaleCreateLoanResponse {
68
+ /** Serialized transaction used to create the loan. */
69
+ transaction: LoopscaleVersionedTransactionResponse;
70
+ /** Derived loan PDA created by the returned transaction. */
71
+ loanAddress: string;
72
+ }
73
+ /**
74
+ * Union of all raw Loopscale transaction response families supported by the SDK.
75
+ */
76
+ export type LoopscaleTransactionResponse = LoopscaleVersionedTransactionResponse | LoopscaleVersionedTransactionBatchResponse | LoopscaleTransactionsResponse | LoopscaleCreateLoanResponse;
77
+ /**
78
+ * Request params for `POST /markets/quote`.
79
+ */
80
+ export interface LoopscaleQuoteParams {
81
+ durationType: number;
82
+ duration: number;
83
+ principal: PublicKey | string;
84
+ collateral: Array<PublicKey | string>;
85
+ limit?: number;
86
+ offset?: number;
87
+ minPrincipalAmount?: bigint | number;
88
+ }
89
+ /**
90
+ * Response item returned by `POST /markets/quote`.
91
+ */
92
+ export interface LoopscaleQuote {
93
+ apy: number;
94
+ ltv: number;
95
+ liquidationThreshold: number;
96
+ maxPrincipalAvailable: number;
97
+ sumPrincipalAvailable?: number;
98
+ [key: string]: unknown;
99
+ }
100
+ /**
101
+ * Request params for `POST /markets/quote/max`.
102
+ */
103
+ export interface LoopscaleMaxQuoteParams {
104
+ durationType: number;
105
+ duration: number;
106
+ principalMint: PublicKey | string;
107
+ collateralFilter: Array<{
108
+ amount: bigint | number;
109
+ assetData: {
110
+ Spl: {
111
+ mint: string;
112
+ };
113
+ } | {
114
+ Orca: {
115
+ positionMint: string;
116
+ whirlpool: string;
117
+ };
118
+ };
119
+ }>;
120
+ }
121
+ /**
122
+ * Quote item returned by `POST /markets/quote/max`.
123
+ */
124
+ export interface LoopscaleMaxQuote {
125
+ apy: number;
126
+ strategy: string;
127
+ collateralIdentifier: string;
128
+ ltv: number;
129
+ lqt: number;
130
+ amount: number;
131
+ }
132
+ /**
133
+ * Request params for `POST /markets/loans/info`.
134
+ *
135
+ * This matches the documented request body. The observed response is a single
136
+ * object with `totalCount` and `loanInfos`.
137
+ */
138
+ export interface LoopscaleLoanInfoParams {
139
+ loanAddresses?: string[];
140
+ lenders?: string[];
141
+ borrowers?: string[];
142
+ filterType?: number;
143
+ principalMints?: string[];
144
+ collateralMints?: string[];
145
+ orderFundingType?: number;
146
+ page?: number;
147
+ pageSize?: number;
148
+ sortDirection?: number;
149
+ sortType?: number;
150
+ assetTypes?: number;
151
+ excludeCollateralIdentifiers?: string[];
152
+ excludePrincipalMints?: string[];
153
+ }
154
+ /**
155
+ * Response returned by `POST /markets/loans/info`.
156
+ */
157
+ export interface LoopscaleLoanInfoResponse {
158
+ totalCount: number;
159
+ principalMints?: string[];
160
+ collateralMints?: string[];
161
+ loanInfos: Array<{
162
+ loan: {
163
+ address: string;
164
+ loanStatus: number;
165
+ borrower: string;
166
+ startTime: number;
167
+ [key: string]: unknown;
168
+ };
169
+ loanType: number;
170
+ ledgers: Array<{
171
+ ledgerIndex: number;
172
+ strategy: string;
173
+ principalMint: string;
174
+ principalDue: number;
175
+ interestOutstanding: number;
176
+ apy: number;
177
+ endTime: number;
178
+ [key: string]: unknown;
179
+ }>;
180
+ collateral: Array<{
181
+ assetMint: string;
182
+ amount: number;
183
+ assetType: number;
184
+ [key: string]: unknown;
185
+ }>;
186
+ [key: string]: unknown;
187
+ }>;
188
+ }
189
+ /**
190
+ * Request params for `POST /markets/strategy/infos`.
191
+ */
192
+ export interface LoopscaleGetStrategiesParams {
193
+ userAddress?: string;
194
+ addresses?: string[];
195
+ principalMints?: string[];
196
+ page?: number;
197
+ pageSize?: number;
198
+ }
199
+ /**
200
+ * Response returned by `POST /markets/strategy/infos`.
201
+ */
202
+ export interface LoopscaleStrategyInfoResponse {
203
+ strategies: Array<{
204
+ strategy: {
205
+ address: string;
206
+ principalMint: string;
207
+ tokenBalance: number;
208
+ currentDeployedAmount: number;
209
+ outstandingInterestAmount: number;
210
+ [key: string]: unknown;
211
+ };
212
+ externalYieldInfo?: {
213
+ apy: number;
214
+ [key: string]: unknown;
215
+ };
216
+ [key: string]: unknown;
217
+ }>;
218
+ total: number;
219
+ }
220
+ /**
221
+ * Strategy create request for `POST /markets/strategy/create`.
222
+ */
223
+ export interface LoopscaleCreateStrategyParams {
224
+ principalMint: PublicKey | string;
225
+ lender: PublicKey | string;
226
+ amount: bigint | number;
227
+ originationsEnabled?: boolean;
228
+ liquidityBuffer?: number;
229
+ interestFee?: number;
230
+ originationFee?: number;
231
+ originationCap?: number;
232
+ collateralTerms?: Array<{
233
+ apy: number;
234
+ indices: Array<{
235
+ collateralIndex: number;
236
+ durationIndex: number;
237
+ }>;
238
+ }>;
239
+ marketInformation?: PublicKey | string;
240
+ externalYieldSourceArgs?: TxnExternalYieldSourceArgs;
241
+ }
242
+ /**
243
+ * Strategy deposit request for `POST /markets/strategy/deposit`.
244
+ */
245
+ export interface LoopscaleDepositStrategyParams {
246
+ strategy: PublicKey | string;
247
+ amount: bigint | number;
248
+ }
249
+ /**
250
+ * Strategy withdraw request for `POST /markets/strategy/withdraw`.
251
+ */
252
+ export interface LoopscaleWithdrawStrategyParams {
253
+ strategy: PublicKey | string;
254
+ amount: bigint | number;
255
+ withdrawAll: boolean;
256
+ }
257
+ /**
258
+ * Strategy close request for `POST /markets/strategy/close/{strategy}`.
259
+ */
260
+ export interface LoopscaleCloseStrategyParams {
261
+ strategy: PublicKey | string;
262
+ }
263
+ /**
264
+ * External yield source configuration used by Loopscale strategy endpoints.
265
+ */
266
+ export interface ExternalYieldSourceParams {
267
+ newExternalYieldSource: number;
268
+ }
269
+ /**
270
+ * Strategy create args for initializing external yield state through Loopscale.
271
+ */
272
+ export interface TxnExternalYieldSourceArgs extends ExternalYieldSourceParams {
273
+ createExternalYieldAccount: boolean;
274
+ }
275
+ /**
276
+ * Duration tuple used by strategy collateral configuration.
277
+ */
278
+ export interface StrategyDuration {
279
+ duration: number;
280
+ durationType: number;
281
+ }
282
+ /**
283
+ * Strategy collateral add args.
284
+ */
285
+ export interface AddCollateralArgs {
286
+ durationsAndApys?: Record<string, string>;
287
+ externalMarketInformationAddress?: string;
288
+ marketInformation?: Record<string, unknown>;
289
+ }
290
+ /**
291
+ * Strategy collateral remove args.
292
+ */
293
+ export interface RemoveCollateralArgs {
294
+ durations: StrategyDuration[];
295
+ removeFromMarketInformation: boolean;
296
+ }
297
+ /**
298
+ * Strategy collateral param update args.
299
+ */
300
+ export interface CollateralParamsUpdateArgs {
301
+ ltvUpdate?: Record<string, unknown>;
302
+ apyUpdate?: Record<string, string>;
303
+ }
304
+ /**
305
+ * Strategy allocation update args.
306
+ */
307
+ export interface CollateralAllocationUpdateArgs {
308
+ assetIdentifier: string;
309
+ maxAllocationPct: string;
310
+ }
311
+ /**
312
+ * Strategy collateral update payload for `POST /markets/strategy/update`.
313
+ */
314
+ export interface StrategyCollateralUpdates {
315
+ addCollateral?: Record<string, AddCollateralArgs>;
316
+ removeCollateral?: Record<string, RemoveCollateralArgs>;
317
+ updateCollateral?: Record<string, CollateralParamsUpdateArgs>;
318
+ updateAssetAllocation?: CollateralAllocationUpdateArgs[];
319
+ }
320
+ /**
321
+ * Strategy settings update payload for `POST /markets/strategy/update`.
322
+ */
323
+ export interface EditStrategySettingsArgs {
324
+ originationsEnabled?: boolean;
325
+ liquidityBuffer?: number;
326
+ interestFee?: number;
327
+ originationFee?: number;
328
+ principalFee?: number;
329
+ originationCap?: number;
330
+ externalYieldSource?: ExternalYieldSourceParams;
331
+ }
332
+ /**
333
+ * Strategy update request for `POST /markets/strategy/update`.
334
+ */
335
+ export interface LoopscaleUpdateStrategyParams {
336
+ strategy: PublicKey | string;
337
+ collateralTerms?: StrategyCollateralUpdates;
338
+ updateParams?: EditStrategySettingsArgs;
339
+ }
340
+ /**
341
+ * Loan create request for `POST /markets/creditbook/create`.
342
+ */
343
+ export interface LoopscaleCreateLoanParams {
344
+ borrower: PublicKey | string;
345
+ depositCollateral: Array<{
346
+ collateralAmount: bigint | number;
347
+ collateralAssetData: {
348
+ Spl: {
349
+ mint: string;
350
+ };
351
+ } | {
352
+ Orca: {
353
+ positionMint: string;
354
+ whirlpool: string;
355
+ };
356
+ };
357
+ }>;
358
+ principalRequested: Array<{
359
+ ledgerIndex: number;
360
+ principalAmount: bigint | number;
361
+ principalMint: PublicKey | string;
362
+ strategy: PublicKey | string;
363
+ durationIndex: number;
364
+ expectedLoanValues?: {
365
+ expectedApy?: number;
366
+ expectedLqt?: number[];
367
+ };
368
+ }>;
369
+ assetIndexGuidance?: number[];
370
+ loanNonce?: string;
371
+ isLoop?: boolean;
372
+ }
373
+ /**
374
+ * Loan borrow request for `POST /markets/creditbook/borrow`.
375
+ */
376
+ export interface LoopscaleBorrowPrincipalParams {
377
+ loan: PublicKey | string;
378
+ borrowParams: {
379
+ amount: bigint | number;
380
+ durationIndex: number;
381
+ expectedLoanValues?: {
382
+ expectedApy?: number;
383
+ expectedLqt?: number[];
384
+ };
385
+ };
386
+ strategy: PublicKey | string;
387
+ refinanceParams?: {
388
+ ledgerIndex: number;
389
+ durationIndex: number;
390
+ };
391
+ isLoop?: boolean;
392
+ }
393
+ /**
394
+ * Loan collateral deposit request for `POST /markets/creditbook/collateral/deposit`.
395
+ */
396
+ export interface LoopscaleDepositCollateralParams {
397
+ loan: PublicKey | string;
398
+ depositMint: PublicKey | string;
399
+ amount: bigint | number;
400
+ assetType: number;
401
+ assetIdentifier: PublicKey | string;
402
+ assetIndexGuidance?: number[];
403
+ expectedLoanValues?: {
404
+ expectedApy?: number;
405
+ expectedLqt?: number[];
406
+ };
407
+ }
408
+ /**
409
+ * Loan collateral withdraw request for `POST /markets/creditbook/collateral/withdraw`.
410
+ */
411
+ export interface LoopscaleWithdrawCollateralParams {
412
+ loan: PublicKey | string;
413
+ collateralMint: PublicKey | string;
414
+ amount: bigint | number;
415
+ collateralIndex: number;
416
+ expectedLoanValues: {
417
+ expectedApy?: number;
418
+ expectedLqt?: number[];
419
+ };
420
+ assetIndexGuidance?: number[];
421
+ }
422
+ /**
423
+ * Loan simple repay request for `POST /markets/creditbook/repay_simple`.
424
+ */
425
+ export interface LoopscaleRepayLoanSimpleParams {
426
+ loan: PublicKey | string;
427
+ repayParams: {
428
+ amount: bigint | number;
429
+ ledgerIndex: number;
430
+ repayAll: boolean;
431
+ };
432
+ strategy: PublicKey | string;
433
+ }
434
+ /**
435
+ * Loan close request for `POST /markets/creditbook/close_loan`.
436
+ */
437
+ export interface LoopscaleCloseLoanParams {
438
+ loan: PublicKey | string;
439
+ }
440
+ /**
441
+ * Supported Loopscale strategy + loan instruction names recognized by the SDK.
442
+ */
443
+ export type LoopscaleInstructionName = "createLoan" | "depositCollateral" | "borrowPrincipal" | "repayPrincipal" | "withdrawCollateral" | "closeLoan" | "updateWeightMatrix" | "lockLoan" | "unlockLoan" | "createStrategy" | "depositStrategy" | "withdrawStrategy" | "closeStrategy" | "updateStrategy" | "refinanceLedger";
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/exponentVaults/loopscale/types.ts"],"names":[],"mappings":""}