defi-dash-sdk 0.1.3 → 0.1.4

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 (181) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +199 -97
  3. package/dist/__tests__/deleverageEstimate.unit.test.d.ts +10 -0
  4. package/dist/__tests__/deleverageEstimate.unit.test.d.ts.map +1 -0
  5. package/dist/__tests__/deleverageEstimate.unit.test.js +116 -0
  6. package/dist/__tests__/deleverageEstimate.unit.test.js.map +1 -0
  7. package/dist/__tests__/findBestLeverageRoute.test.d.ts +12 -0
  8. package/dist/__tests__/findBestLeverageRoute.test.d.ts.map +1 -0
  9. package/dist/__tests__/findBestLeverageRoute.test.js +177 -0
  10. package/dist/__tests__/findBestLeverageRoute.test.js.map +1 -0
  11. package/dist/__tests__/getAssetApy.test.d.ts +2 -0
  12. package/dist/__tests__/getAssetApy.test.d.ts.map +1 -0
  13. package/dist/__tests__/getAssetApy.test.js +133 -0
  14. package/dist/__tests__/getAssetApy.test.js.map +1 -0
  15. package/dist/__tests__/getAssetRiskParams.test.d.ts +11 -0
  16. package/dist/__tests__/getAssetRiskParams.test.d.ts.map +1 -0
  17. package/dist/__tests__/getAssetRiskParams.test.js +183 -0
  18. package/dist/__tests__/getAssetRiskParams.test.js.map +1 -0
  19. package/dist/__tests__/internal.getAssetApy.test.d.ts +2 -0
  20. package/dist/__tests__/internal.getAssetApy.test.d.ts.map +1 -0
  21. package/dist/__tests__/internal.getAssetApy.test.js +140 -0
  22. package/dist/__tests__/internal.getAssetApy.test.js.map +1 -0
  23. package/dist/__tests__/internal.getAssetRiskParams.test.d.ts +22 -0
  24. package/dist/__tests__/internal.getAssetRiskParams.test.d.ts.map +1 -0
  25. package/dist/__tests__/internal.getAssetRiskParams.test.js +194 -0
  26. package/dist/__tests__/internal.getAssetRiskParams.test.js.map +1 -0
  27. package/dist/__tests__/internal.getPosition.test.d.ts +22 -0
  28. package/dist/__tests__/internal.getPosition.test.d.ts.map +1 -0
  29. package/dist/__tests__/internal.getPosition.test.js +153 -0
  30. package/dist/__tests__/internal.getPosition.test.js.map +1 -0
  31. package/dist/__tests__/leveragePreview.unit.test.d.ts +10 -0
  32. package/dist/__tests__/leveragePreview.unit.test.d.ts.map +1 -0
  33. package/dist/__tests__/leveragePreview.unit.test.js +168 -0
  34. package/dist/__tests__/leveragePreview.unit.test.js.map +1 -0
  35. package/dist/__tests__/leverageRoute.unit.test.d.ts +10 -0
  36. package/dist/__tests__/leverageRoute.unit.test.d.ts.map +1 -0
  37. package/dist/__tests__/leverageRoute.unit.test.js +159 -0
  38. package/dist/__tests__/leverageRoute.unit.test.js.map +1 -0
  39. package/dist/__tests__/previewLeverage.test.d.ts +13 -0
  40. package/dist/__tests__/previewLeverage.test.d.ts.map +1 -0
  41. package/dist/__tests__/previewLeverage.test.js +217 -0
  42. package/dist/__tests__/previewLeverage.test.js.map +1 -0
  43. package/dist/__tests__/sdk.bestRoute.test.d.ts +22 -0
  44. package/dist/__tests__/sdk.bestRoute.test.d.ts.map +1 -0
  45. package/dist/__tests__/sdk.bestRoute.test.js +186 -0
  46. package/dist/__tests__/sdk.bestRoute.test.js.map +1 -0
  47. package/dist/__tests__/sdk.bestRoute.unit.test.d.ts +16 -0
  48. package/dist/__tests__/sdk.bestRoute.unit.test.d.ts.map +1 -0
  49. package/dist/__tests__/sdk.bestRoute.unit.test.js +165 -0
  50. package/dist/__tests__/sdk.bestRoute.unit.test.js.map +1 -0
  51. package/dist/__tests__/sdk.deleverage.test.d.ts +21 -0
  52. package/dist/__tests__/sdk.deleverage.test.d.ts.map +1 -0
  53. package/dist/__tests__/sdk.deleverage.test.js +130 -0
  54. package/dist/__tests__/sdk.deleverage.test.js.map +1 -0
  55. package/dist/__tests__/sdk.deleverage.unit.test.d.ts +21 -0
  56. package/dist/__tests__/sdk.deleverage.unit.test.d.ts.map +1 -0
  57. package/dist/__tests__/sdk.deleverage.unit.test.js +141 -0
  58. package/dist/__tests__/sdk.deleverage.unit.test.js.map +1 -0
  59. package/dist/__tests__/sdk.leverage.test.d.ts +19 -0
  60. package/dist/__tests__/sdk.leverage.test.d.ts.map +1 -0
  61. package/dist/__tests__/sdk.leverage.test.js +188 -0
  62. package/dist/__tests__/sdk.leverage.test.js.map +1 -0
  63. package/dist/__tests__/sdk.portfolio.test.d.ts +17 -0
  64. package/dist/__tests__/sdk.portfolio.test.d.ts.map +1 -0
  65. package/dist/__tests__/sdk.portfolio.test.js +162 -0
  66. package/dist/__tests__/sdk.portfolio.test.js.map +1 -0
  67. package/dist/__tests__/sdk.position.test.d.ts +16 -0
  68. package/dist/__tests__/sdk.position.test.d.ts.map +1 -0
  69. package/dist/__tests__/sdk.position.test.js +193 -0
  70. package/dist/__tests__/sdk.position.test.js.map +1 -0
  71. package/dist/__tests__/sdk.preview.test.d.ts +23 -0
  72. package/dist/__tests__/sdk.preview.test.d.ts.map +1 -0
  73. package/dist/__tests__/sdk.preview.test.js +226 -0
  74. package/dist/__tests__/sdk.preview.test.js.map +1 -0
  75. package/dist/__tests__/sdk.preview.unit.test.d.ts +18 -0
  76. package/dist/__tests__/sdk.preview.unit.test.d.ts.map +1 -0
  77. package/dist/__tests__/sdk.preview.unit.test.js +175 -0
  78. package/dist/__tests__/sdk.preview.unit.test.js.map +1 -0
  79. package/dist/__tests__/utils.normalizeCoinType.test.d.ts +7 -0
  80. package/dist/__tests__/utils.normalizeCoinType.test.d.ts.map +1 -0
  81. package/dist/__tests__/utils.normalizeCoinType.test.js +42 -0
  82. package/dist/__tests__/utils.normalizeCoinType.test.js.map +1 -0
  83. package/dist/index.d.ts +19 -11
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +24 -40
  86. package/dist/index.js.map +1 -1
  87. package/dist/protocols/base-adapter.d.ts +42 -75
  88. package/dist/protocols/base-adapter.d.ts.map +1 -1
  89. package/dist/protocols/base-adapter.js +34 -77
  90. package/dist/protocols/base-adapter.js.map +1 -1
  91. package/dist/protocols/navi/adapter.d.ts +22 -2
  92. package/dist/protocols/navi/adapter.d.ts.map +1 -1
  93. package/dist/protocols/navi/adapter.js +145 -11
  94. package/dist/protocols/navi/adapter.js.map +1 -1
  95. package/dist/protocols/scallop/adapter.d.ts +26 -6
  96. package/dist/protocols/scallop/adapter.d.ts.map +1 -1
  97. package/dist/protocols/scallop/adapter.js +206 -43
  98. package/dist/protocols/scallop/adapter.js.map +1 -1
  99. package/dist/protocols/scallop/flash-loan.d.ts +18 -3
  100. package/dist/protocols/scallop/flash-loan.d.ts.map +1 -1
  101. package/dist/protocols/scallop/flash-loan.js +79 -20
  102. package/dist/protocols/scallop/flash-loan.js.map +1 -1
  103. package/dist/protocols/scallop/types.d.ts.map +1 -1
  104. package/dist/protocols/scallop/types.js +4 -1
  105. package/dist/protocols/scallop/types.js.map +1 -1
  106. package/dist/protocols/suilend/adapter.d.ts +19 -1
  107. package/dist/protocols/suilend/adapter.d.ts.map +1 -1
  108. package/dist/protocols/suilend/adapter.js +196 -51
  109. package/dist/protocols/suilend/adapter.js.map +1 -1
  110. package/dist/sdk.d.ts +107 -148
  111. package/dist/sdk.d.ts.map +1 -1
  112. package/dist/sdk.js +171 -523
  113. package/dist/sdk.js.map +1 -1
  114. package/dist/strategies/common.d.ts +42 -0
  115. package/dist/strategies/common.d.ts.map +1 -0
  116. package/dist/strategies/common.js +81 -0
  117. package/dist/strategies/common.js.map +1 -0
  118. package/dist/strategies/deleverage.d.ts.map +1 -1
  119. package/dist/strategies/deleverage.js +44 -62
  120. package/dist/strategies/deleverage.js.map +1 -1
  121. package/dist/strategies/index.d.ts +9 -1
  122. package/dist/strategies/index.d.ts.map +1 -1
  123. package/dist/strategies/index.js +11 -2
  124. package/dist/strategies/index.js.map +1 -1
  125. package/dist/strategies/leverage-preview.d.ts +27 -0
  126. package/dist/strategies/leverage-preview.d.ts.map +1 -0
  127. package/dist/strategies/leverage-preview.js +120 -0
  128. package/dist/strategies/leverage-preview.js.map +1 -0
  129. package/dist/strategies/leverage-route.d.ts +29 -0
  130. package/dist/strategies/leverage-route.d.ts.map +1 -0
  131. package/dist/strategies/leverage-route.js +112 -0
  132. package/dist/strategies/leverage-route.js.map +1 -0
  133. package/dist/strategies/leverage.d.ts +4 -44
  134. package/dist/strategies/leverage.d.ts.map +1 -1
  135. package/dist/strategies/leverage.js +43 -112
  136. package/dist/strategies/leverage.js.map +1 -1
  137. package/dist/strategies/scallop-leverage.d.ts +34 -0
  138. package/dist/strategies/scallop-leverage.d.ts.map +1 -0
  139. package/dist/strategies/scallop-leverage.js +143 -0
  140. package/dist/strategies/scallop-leverage.js.map +1 -0
  141. package/dist/types/config.d.ts +0 -7
  142. package/dist/types/config.d.ts.map +1 -1
  143. package/dist/types/constants.d.ts +8 -0
  144. package/dist/types/constants.d.ts.map +1 -1
  145. package/dist/types/constants.js +9 -1
  146. package/dist/types/constants.js.map +1 -1
  147. package/dist/types/index.d.ts +3 -3
  148. package/dist/types/index.d.ts.map +1 -1
  149. package/dist/types/index.js +2 -1
  150. package/dist/types/index.js.map +1 -1
  151. package/dist/types/position.d.ts +7 -3
  152. package/dist/types/position.d.ts.map +1 -1
  153. package/dist/types/protocol.d.ts +101 -0
  154. package/dist/types/protocol.d.ts.map +1 -1
  155. package/dist/types/strategy.d.ts +82 -38
  156. package/dist/types/strategy.d.ts.map +1 -1
  157. package/dist/utils/calculations.d.ts +10 -137
  158. package/dist/utils/calculations.d.ts.map +1 -1
  159. package/dist/utils/calculations.js +11 -162
  160. package/dist/utils/calculations.js.map +1 -1
  161. package/dist/utils/coin.d.ts +16 -7
  162. package/dist/utils/coin.d.ts.map +1 -1
  163. package/dist/utils/coin.js +32 -25
  164. package/dist/utils/coin.js.map +1 -1
  165. package/dist/utils/errors.d.ts +0 -18
  166. package/dist/utils/errors.d.ts.map +1 -1
  167. package/dist/utils/errors.js +2 -40
  168. package/dist/utils/errors.js.map +1 -1
  169. package/dist/utils/execution.d.ts +38 -0
  170. package/dist/utils/execution.d.ts.map +1 -0
  171. package/dist/utils/execution.js +110 -0
  172. package/dist/utils/execution.js.map +1 -0
  173. package/dist/utils/gas.d.ts +0 -37
  174. package/dist/utils/gas.d.ts.map +1 -1
  175. package/dist/utils/gas.js +2 -60
  176. package/dist/utils/gas.js.map +1 -1
  177. package/dist/utils/index.d.ts +1 -1
  178. package/dist/utils/index.d.ts.map +1 -1
  179. package/dist/utils/index.js +1 -1
  180. package/dist/utils/index.js.map +1 -1
  181. package/package.json +15 -45
@@ -30,7 +30,7 @@ Object.defineProperty(exports, "SCALLOP_COIN_TYPE_MAP", { enumerable: true, get:
30
30
  */
31
31
  class ScallopAdapter {
32
32
  constructor() {
33
- this.name = 'scallop';
33
+ this.name = "scallop";
34
34
  /**
35
35
  * Scallop's repay takes what it needs and leaves remaining balance in the coin.
36
36
  * The original coin object remains valid with any unused portion.
@@ -63,13 +63,15 @@ class ScallopAdapter {
63
63
  async initialize(suiClient) {
64
64
  this.suiClient = suiClient;
65
65
  // Initialize Scallop SDK
66
- this.scallop = new sui_scallop_sdk_1.Scallop({ networkType: 'mainnet' });
66
+ this.scallop = new sui_scallop_sdk_1.Scallop({ networkType: "mainnet" });
67
67
  await this.scallop.init();
68
68
  this.query = await this.scallop.createScallopQuery();
69
+ // Must call query.init() to populate internal whitelist Sets used by market queries
70
+ await this.query.init();
69
71
  // Fetch addresses from SDK (always up-to-date with protocol upgrades)
70
72
  const addresses = this.scallop.client.address.getAddresses();
71
73
  if (!addresses) {
72
- throw new Error('Failed to get Scallop addresses from SDK');
74
+ throw new Error("Failed to get Scallop addresses from SDK");
73
75
  }
74
76
  this.populateAddresses(addresses);
75
77
  // Build coin mappings
@@ -86,7 +88,7 @@ class ScallopAdapter {
86
88
  populateAddresses(addresses) {
87
89
  // Core protocol addresses
88
90
  this.coreAddresses = {
89
- protocolPkg: addresses.core.packages?.protocol?.id || '',
91
+ protocolPkg: addresses.core.packages?.protocol?.id || "",
90
92
  version: addresses.core.version,
91
93
  market: addresses.core.market,
92
94
  coinDecimalsRegistry: addresses.core.coinDecimalsRegistry,
@@ -122,7 +124,7 @@ class ScallopAdapter {
122
124
  }
123
125
  ensureInitialized() {
124
126
  if (!this.initialized) {
125
- throw new Error('ScallopAdapter not initialized. Call initialize() first.');
127
+ throw new Error("ScallopAdapter not initialized. Call initialize() first.");
126
128
  }
127
129
  }
128
130
  getCoinName(coinType) {
@@ -151,56 +153,61 @@ class ScallopAdapter {
151
153
  const obligation = await this.query.queryObligation(obligations[0].id);
152
154
  if (!obligation)
153
155
  return null;
154
- let collateral = null;
155
- let debt = null;
156
156
  const collaterals = obligation.collaterals || [];
157
- const debts = obligation.debts || [];
158
- if (collaterals.length > 0) {
159
- const col = collaterals[0];
160
- // Scallop SDK returns type as { name: string }
161
- const rawCoinType = col.coinType || col.type?.name || '';
157
+ const debtItems = obligation.debts || [];
158
+ // Build all supply positions
159
+ const supplies = await Promise.all(collaterals.map(async (col) => {
160
+ const rawCoinType = col.coinType || col.type?.name || "";
162
161
  const coinType = (0, utils_2.normalizeCoinType)(rawCoinType);
163
162
  const reserve = (0, constants_1.getReserveByCoinType)(coinType);
164
163
  const decimals = reserve?.decimals || 9;
165
164
  const amount = BigInt(col.amount || col.depositAmount || 0);
166
165
  const price = await (0, sdk_ts_1.getTokenPrice)(coinType);
167
- collateral = {
166
+ return {
168
167
  amount,
169
168
  symbol: reserve?.symbol || this.getCoinName(coinType).toUpperCase(),
170
169
  coinType,
171
170
  decimals,
172
171
  valueUsd: (Number(amount) / Math.pow(10, decimals)) * price,
173
172
  };
174
- }
175
- if (debts.length > 0) {
176
- const d = debts[0];
177
- // Scallop SDK returns type as { name: string }
178
- const rawCoinType = d.coinType || d.type?.name || '';
173
+ }));
174
+ // Build all borrow positions
175
+ const allBorrows = await Promise.all(debtItems.map(async (d) => {
176
+ const rawCoinType = d.coinType || d.type?.name || "";
179
177
  const coinType = (0, utils_2.normalizeCoinType)(rawCoinType);
180
178
  const reserve = (0, constants_1.getReserveByCoinType)(coinType);
181
179
  const decimals = reserve?.decimals || 6;
182
180
  const amount = BigInt(d.amount || d.borrowAmount || 0);
183
181
  const price = await (0, sdk_ts_1.getTokenPrice)(coinType);
184
- debt = {
182
+ return {
185
183
  amount,
186
- symbol: reserve?.symbol || 'USDC',
184
+ symbol: reserve?.symbol || "USDC",
187
185
  coinType,
188
186
  decimals,
189
187
  valueUsd: (Number(amount) / Math.pow(10, decimals)) * price,
190
188
  };
191
- }
189
+ }));
190
+ // Primary = largest by USD value
191
+ const collateral = [...supplies].sort((a, b) => b.valueUsd - a.valueUsd)[0] ?? null;
192
192
  if (!collateral)
193
193
  return null;
194
+ const debt = allBorrows.length > 0
195
+ ? [...allBorrows].sort((a, b) => b.valueUsd - a.valueUsd)[0]
196
+ : null;
197
+ const totalSupplyUsd = supplies.reduce((s, p) => s + p.valueUsd, 0);
198
+ const totalDebtUsd = allBorrows.reduce((s, p) => s + p.valueUsd, 0);
194
199
  return {
195
200
  collateral,
196
201
  debt: debt || {
197
202
  amount: 0n,
198
- symbol: 'USDC',
203
+ symbol: "USDC",
199
204
  coinType: types_1.USDC_COIN_TYPE,
200
205
  decimals: 6,
201
206
  valueUsd: 0,
202
207
  },
203
- netValueUsd: collateral.valueUsd - (debt?.valueUsd || 0),
208
+ supplies,
209
+ borrows: allBorrows,
210
+ netValueUsd: totalSupplyUsd - totalDebtUsd,
204
211
  };
205
212
  }
206
213
  // ============================================================================
@@ -247,7 +254,7 @@ class ScallopAdapter {
247
254
  const clockRef = tx.sharedObjectRef({
248
255
  objectId: utils_1.SUI_CLOCK_OBJECT_ID,
249
256
  mutable: false,
250
- initialSharedVersion: '1',
257
+ initialSharedVersion: "1",
251
258
  });
252
259
  const result = tx.moveCall({
253
260
  target: `${this.coreAddresses.protocolPkg}::borrow::borrow`,
@@ -272,7 +279,7 @@ class ScallopAdapter {
272
279
  const clockRef = tx.sharedObjectRef({
273
280
  objectId: utils_1.SUI_CLOCK_OBJECT_ID,
274
281
  mutable: false,
275
- initialSharedVersion: '1',
282
+ initialSharedVersion: "1",
276
283
  });
277
284
  tx.moveCall({
278
285
  target: `${this.coreAddresses.protocolPkg}::repay::repay`,
@@ -306,7 +313,7 @@ class ScallopAdapter {
306
313
  const clockRef = tx.sharedObjectRef({
307
314
  objectId: utils_1.SUI_CLOCK_OBJECT_ID,
308
315
  mutable: false,
309
- initialSharedVersion: '1',
316
+ initialSharedVersion: "1",
310
317
  });
311
318
  tx.moveCall({
312
319
  target: `${this.borrowIncentiveAddresses.pkg}::user::unstake_v2`,
@@ -333,7 +340,7 @@ class ScallopAdapter {
333
340
  const clockRef = tx.sharedObjectRef({
334
341
  objectId: utils_1.SUI_CLOCK_OBJECT_ID,
335
342
  mutable: false,
336
- initialSharedVersion: '1',
343
+ initialSharedVersion: "1",
337
344
  });
338
345
  tx.moveCall({
339
346
  target: `${this.borrowIncentiveAddresses.pkg}::user::stake`,
@@ -357,7 +364,7 @@ class ScallopAdapter {
357
364
  id: obligationId,
358
365
  options: { showContent: true },
359
366
  });
360
- if (response.data?.content?.dataType === 'moveObject') {
367
+ if (response.data?.content?.dataType === "moveObject") {
361
368
  const fields = response.data.content.fields;
362
369
  return Boolean(fields.lock_key);
363
370
  }
@@ -426,7 +433,7 @@ class ScallopAdapter {
426
433
  const normalized = (0, utils_2.normalizeCoinType)(coinType);
427
434
  const obligations = await this.query.getObligations(userAddress);
428
435
  if (obligations.length === 0) {
429
- throw new Error('No obligation found for withdrawal');
436
+ throw new Error("No obligation found for withdrawal");
430
437
  }
431
438
  const obligation = obligations[0];
432
439
  const obligationId = obligation.id;
@@ -439,7 +446,7 @@ class ScallopAdapter {
439
446
  const clockRef = tx.sharedObjectRef({
440
447
  objectId: utils_1.SUI_CLOCK_OBJECT_ID,
441
448
  mutable: false,
442
- initialSharedVersion: '1',
449
+ initialSharedVersion: "1",
443
450
  });
444
451
  const result = tx.moveCall({
445
452
  target: `${this.coreAddresses.protocolPkg}::withdraw_collateral::withdraw_collateral`,
@@ -492,7 +499,7 @@ class ScallopAdapter {
492
499
  return result;
493
500
  }
494
501
  if (obligations.length === 0) {
495
- throw new Error('No obligation found for borrowing');
502
+ throw new Error("No obligation found for borrowing");
496
503
  }
497
504
  const obligation = obligations[0];
498
505
  const obligationId = obligation.id;
@@ -520,7 +527,7 @@ class ScallopAdapter {
520
527
  const normalized = (0, utils_2.normalizeCoinType)(coinType);
521
528
  const obligations = await this.query.getObligations(userAddress);
522
529
  if (obligations.length === 0) {
523
- throw new Error('No obligation found for repayment');
530
+ throw new Error("No obligation found for repayment");
524
531
  }
525
532
  const obligation = obligations[0];
526
533
  const obligationId = obligation.id;
@@ -532,9 +539,24 @@ class ScallopAdapter {
532
539
  }
533
540
  this.repayDebt(tx, tx.object(obligationId), coin, normalized);
534
541
  }
535
- async refreshOracles(_tx, _coinTypes, _userAddress) {
536
- // Scallop oracle refresh is embedded in borrow/withdraw calls via xOracle
537
- // No separate refresh needed for basic operations
542
+ async refreshOracles(tx, coinTypes, _userAddress) {
543
+ this.ensureInitialized();
544
+ // Convert coinTypes to Scallop coin names
545
+ const coinNames = coinTypes
546
+ .map((ct) => {
547
+ const normalized = (0, utils_2.normalizeCoinType)(ct);
548
+ return this.coinTypeToNameMap[normalized];
549
+ })
550
+ .filter(Boolean);
551
+ if (coinNames.length === 0)
552
+ return;
553
+ // Create Scallop builder and inject existing Transaction into its txBlock.
554
+ // This makes updateAssetPricesQuick() append oracle refresh commands
555
+ // directly into the provided PTB.
556
+ const builder = await this.scallop.createScallopBuilder();
557
+ const scallopTx = builder.createTxBlock();
558
+ scallopTx.txBlock = tx;
559
+ await scallopTx.updateAssetPricesQuick(coinNames);
538
560
  }
539
561
  /**
540
562
  * Get all obligations for a user with their locked status
@@ -567,11 +589,11 @@ class ScallopAdapter {
567
589
  return null;
568
590
  const oblData = obligationData;
569
591
  const collaterals = (oblData.collaterals || []).map((col) => ({
570
- coinType: (0, utils_2.normalizeCoinType)(col.coinType || col.type?.name || ''),
592
+ coinType: (0, utils_2.normalizeCoinType)(col.coinType || col.type?.name || ""),
571
593
  amount: String(col.amount || col.depositAmount || 0),
572
594
  }));
573
595
  const debts = (oblData.debts || []).map((d) => ({
574
- coinType: (0, utils_2.normalizeCoinType)(d.coinType || d.type?.name || ''),
596
+ coinType: (0, utils_2.normalizeCoinType)(d.coinType || d.type?.name || ""),
575
597
  amount: String(d.amount || d.borrowAmount || 0),
576
598
  }));
577
599
  return {
@@ -604,7 +626,7 @@ class ScallopAdapter {
604
626
  const collaterals = oblData.collaterals || [];
605
627
  const debts = oblData.debts || [];
606
628
  for (const col of collaterals) {
607
- const coinType = (0, utils_2.normalizeCoinType)(col.coinType || col.type?.name || '');
629
+ const coinType = (0, utils_2.normalizeCoinType)(col.coinType || col.type?.name || "");
608
630
  const reserve = (0, constants_1.getReserveByCoinType)(coinType);
609
631
  const decimals = reserve?.decimals || 9;
610
632
  const amount = Number(col.amount || col.depositAmount || 0) / Math.pow(10, decimals);
@@ -614,15 +636,15 @@ class ScallopAdapter {
614
636
  positions.push({
615
637
  protocol: types_1.LendingProtocol.Scallop,
616
638
  coinType,
617
- symbol: reserve?.symbol || 'UNKNOWN',
618
- side: 'supply',
639
+ symbol: reserve?.symbol || "UNKNOWN",
640
+ side: "supply",
619
641
  amount,
620
642
  valueUsd,
621
643
  apy: 0,
622
644
  });
623
645
  }
624
646
  for (const d of debts) {
625
- const coinType = (0, utils_2.normalizeCoinType)(d.coinType || d.type?.name || '');
647
+ const coinType = (0, utils_2.normalizeCoinType)(d.coinType || d.type?.name || "");
626
648
  const reserve = (0, constants_1.getReserveByCoinType)(coinType);
627
649
  const decimals = reserve?.decimals || 6;
628
650
  const amount = Number(d.amount || d.borrowAmount || 0) / Math.pow(10, decimals);
@@ -632,8 +654,8 @@ class ScallopAdapter {
632
654
  positions.push({
633
655
  protocol: types_1.LendingProtocol.Scallop,
634
656
  coinType,
635
- symbol: reserve?.symbol || 'USDC',
636
- side: 'borrow',
657
+ symbol: reserve?.symbol || "USDC",
658
+ side: "borrow",
637
659
  amount,
638
660
  valueUsd,
639
661
  apy: 0,
@@ -764,6 +786,147 @@ class ScallopAdapter {
764
786
  this.ensureInitialized();
765
787
  return this.suiClient;
766
788
  }
789
+ /**
790
+ * Get asset risk parameters for leverage calculations
791
+ *
792
+ * Queries on-chain risk_models table directly from the Scallop Market object,
793
+ * bypassing the SDK's buggy queryMarket() (isLayerZeroAsset crash).
794
+ *
795
+ * On-chain layout:
796
+ * Market → risk_models (Table) → [TypeName key] → RiskModel
797
+ * RiskModel fields are FixedPoint32 (u64 / 2^32 → 0-1 decimal)
798
+ */
799
+ async getAssetRiskParams(coinType) {
800
+ this.ensureInitialized();
801
+ const FALLBACK = {
802
+ ltv: 0.5,
803
+ liquidationThreshold: 0.6,
804
+ liquidationBonus: 0.05,
805
+ maxMultiplier: 2.0,
806
+ };
807
+ const normalized = (0, utils_2.normalizeCoinType)(coinType);
808
+ try {
809
+ // Step 1: Get risk_models table ID from Market object
810
+ const marketObj = await this.suiClient.getObject({
811
+ id: this.coreAddresses.market,
812
+ options: { showContent: true },
813
+ });
814
+ const marketFields = marketObj.data?.content?.fields;
815
+ const riskModelTableId = marketFields?.risk_models?.fields?.table?.fields?.id?.id;
816
+ if (!riskModelTableId)
817
+ return FALLBACK;
818
+ // Step 2: Query risk model for the coin type
819
+ // Dynamic field key: coin type without "0x" prefix
820
+ const coinTypeKey = normalized.startsWith("0x")
821
+ ? normalized.slice(2)
822
+ : normalized;
823
+ const resp = await this.suiClient.getDynamicFieldObject({
824
+ parentId: riskModelTableId,
825
+ name: {
826
+ type: "0x1::type_name::TypeName",
827
+ value: { name: coinTypeKey },
828
+ },
829
+ });
830
+ const rm = resp.data?.content?.fields?.value?.fields;
831
+ if (!rm)
832
+ return FALLBACK;
833
+ // Step 3: Parse FixedPoint32 values (u64 / 2^32)
834
+ const DIVISOR = 2 ** 32;
835
+ const ltv = Number(rm.collateral_factor?.fields?.value) / DIVISOR;
836
+ const liquidationThreshold = Number(rm.liquidation_factor?.fields?.value) / DIVISOR;
837
+ const liquidationBonus = Number(rm.liquidation_discount?.fields?.value) / DIVISOR;
838
+ if (isNaN(ltv) || ltv <= 0 || ltv >= 1)
839
+ return FALLBACK;
840
+ const maxMultiplier = 1 / (1 - ltv);
841
+ return {
842
+ ltv,
843
+ liquidationThreshold,
844
+ liquidationBonus,
845
+ maxMultiplier,
846
+ };
847
+ }
848
+ catch {
849
+ return FALLBACK;
850
+ }
851
+ }
852
+ /**
853
+ * Get current supply/borrow APY for an asset.
854
+ *
855
+ * Uses Scallop's queryMarket() which returns pool data including:
856
+ * - supplyApr / supplyApy: computed from the interest rate model
857
+ * - borrowApr / borrowApy: current borrow rate
858
+ * - spool reward APY is included when available from query
859
+ */
860
+ async getAssetApy(coinType) {
861
+ this.ensureInitialized();
862
+ const normalized = (0, utils_2.normalizeCoinType)(coinType);
863
+ const coinName = this.coinTypeToNameMap[normalized];
864
+ if (!coinName) {
865
+ throw new Error(`Scallop: coin type not found in mapping: ${normalized}`);
866
+ }
867
+ try {
868
+ // Bypass an SDK bug in isLayerZeroAsset by calling the indexer directly.
869
+ // query.indexer.getMarketPool fetches from Scallop REST API (/api/market/migrate)
870
+ // without going through the broken ScallopUtils code path.
871
+ const pool = await this.query.indexer.getMarketPool(coinName);
872
+ if (!pool) {
873
+ throw new Error(`Scallop: market pool not found for ${coinName}`);
874
+ }
875
+ // Scallop SDK calculates these from the interest rate model + utilization
876
+ // Values are 0-1 decimals already (e.g., 0.05 = 5%)
877
+ // pool.borrowApy from the indexer is the base (gross) borrow rate.
878
+ const supplyApy = pool.supplyApy ?? 0;
879
+ const grossBorrowApy = pool.borrowApy ?? 0;
880
+ // Spool supply reward APY if available
881
+ const rewardApy = pool.rewardApy ?? 0;
882
+ // Borrow incentive rewards (sSUI, sSCA, ...) reduce the effective borrow cost.
883
+ // The REST API returns pool.rewards[] where each entry has rewardApr (0-1 decimal).
884
+ // The SDK getBorrowIncentivePool() has an internal bug, so we fetch directly from
885
+ // the Scallop REST API as a reliable fallback.
886
+ let borrowRewardApy = 0;
887
+ try {
888
+ let rewards = [];
889
+ // Try SDK indexer first
890
+ try {
891
+ const borrowIncentivePool = await this.query.indexer.getBorrowIncentivePool(coinName);
892
+ rewards =
893
+ borrowIncentivePool?.rewards ??
894
+ Object.values(borrowIncentivePool?.points ?? {});
895
+ }
896
+ catch {
897
+ // SDK failed — fall through to REST API fetch
898
+ }
899
+ // Fallback: fetch REST API directly (handles SDK getBorrowIncentivePools bug)
900
+ if (rewards.length === 0) {
901
+ const resp = await fetch("https://sdk.api.scallop.io/api/borrowIncentivePools/migrate");
902
+ if (resp.ok) {
903
+ const data = await resp.json();
904
+ const pool = Object.values(data).find((p) => p?.coinName === coinName);
905
+ rewards = pool?.rewards ?? [];
906
+ }
907
+ }
908
+ for (const reward of rewards) {
909
+ if (reward && typeof reward.rewardApr === "number") {
910
+ borrowRewardApy += reward.rewardApr;
911
+ }
912
+ }
913
+ }
914
+ catch {
915
+ // borrow incentive data unavailable — use 0
916
+ }
917
+ return {
918
+ supplyApy,
919
+ rewardApy,
920
+ totalSupplyApy: supplyApy + rewardApy,
921
+ // Net borrow cost: gross APR minus borrow incentive rebates
922
+ borrowApy: Math.max(0, grossBorrowApy - borrowRewardApy),
923
+ borrowRewardApy,
924
+ };
925
+ }
926
+ catch (err) {
927
+ throw new Error(`Scallop: failed to get APY for ${coinName}: ${err}`);
928
+ }
929
+ }
767
930
  }
768
931
  exports.ScallopAdapter = ScallopAdapter;
769
932
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/protocols/scallop/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/protocols/scallop/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { Transaction } from '@mysten/sui/transactions';
1
+ import { Transaction } from "@mysten/sui/transactions";
2
+ import { SuiClient } from "@mysten/sui/client";
2
3
  /**
3
4
  * Scallop Protocol Addresses
4
5
  * Default: fetched from https://sui.apis.scallop.io/addresses/{addressId}
@@ -26,7 +27,7 @@ export interface ScallopFlashLoanClientOptions {
26
27
  /** Full override of core IDs */
27
28
  coreIds?: Partial<ScallopCoreIds>;
28
29
  }
29
- type TransactionArg = ReturnType<Transaction['splitCoins']>;
30
+ type TransactionArg = ReturnType<Transaction["splitCoins"]>;
30
31
  /**
31
32
  * Custom Scallop Flash Loan Client
32
33
  *
@@ -75,9 +76,23 @@ export declare class ScallopFlashLoanClient {
75
76
  */
76
77
  repayFlashLoan(tx: Transaction, coin: TransactionArg, receipt: TransactionArg, coinName: string): void;
77
78
  /**
78
- * Calculate flash loan fee (0.05% = 5 basis points)
79
+ * Calculate flash loan fee using hardcoded rate (0.05% = 5 basis points)
80
+ * For the live on-chain rate, use fetchFlashLoanFeeRate() instead.
79
81
  */
80
82
  static calculateFee(amount: bigint): bigint;
83
+ /**
84
+ * Fetch the actual flash loan fee rate for a given coin type from on-chain storage.
85
+ *
86
+ * Queries the Scallop FLASHLOAN_FEES_TABLE dynamic fields to find the fee numerator
87
+ * for the specified coin type. Returns the rate as a decimal (e.g. 0.0005 = 0.05%).
88
+ *
89
+ * Falls back to FLASH_LOAN_DEFAULT_FEE_RATE (0.0005) if query fails.
90
+ *
91
+ * @param suiClient - SuiClient instance
92
+ * @param coinType - Full coin type string (e.g. "0x2::sui::SUI")
93
+ * @returns Fee rate as 0-1 decimal
94
+ */
95
+ static fetchFlashLoanFeeRate(suiClient: SuiClient, coinType: string): Promise<number>;
81
96
  /**
82
97
  * Fetch latest addresses from Scallop API
83
98
  * Use this to update the client when SDK is outdated
@@ -1 +1 @@
1
- {"version":3,"file":"flash-loan.d.ts","sourceRoot":"","sources":["../../../src/protocols/scallop/flash-loan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAmCD,MAAM,WAAW,6BAA6B;IAC5C,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACnC;AAED,KAAK,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAmB;gBAExB,OAAO,GAAE,6BAAkC;IAkBvD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAQrC;;OAEG;IACH,UAAU,IAAI,cAAc;IAI5B;;;;;;;OAOG;IACH,eAAe,CACb,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,EAAE,MAAM,GACf,CAAC,cAAc,EAAE,cAAc,CAAC;IAanC;;;;;;;OAOG;IACH,cAAc,CACZ,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,GACf,IAAI;IAgBP;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAM3C;;;OAGG;WACU,YAAY,CACvB,SAAS,GAAE,MAAmC,GAC7C,OAAO,CAAC,cAAc,CAAC;CAc3B;AAED,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"flash-loan.d.ts","sourceRoot":"","sources":["../../../src/protocols/scallop/flash-loan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAmCD,MAAM,WAAW,6BAA6B;IAC5C,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACnC;AAED,KAAK,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAmB;gBAExB,OAAO,GAAE,6BAAkC;IAkBvD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAQrC;;OAEG;IACH,UAAU,IAAI,cAAc;IAI5B;;;;;;;OAOG;IACH,eAAe,CACb,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,EAAE,MAAM,GACf,CAAC,cAAc,EAAE,cAAc,CAAC;IAanC;;;;;;;OAOG;IACH,cAAc,CACZ,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,GACf,IAAI;IAgBP;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAM3C;;;;;;;;;;;OAWG;WACU,qBAAqB,CAChC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAkDlB;;;OAGG;WACU,YAAY,CACvB,SAAS,GAAE,MAAmC,GAC7C,OAAO,CAAC,cAAc,CAAC;CAc3B;AAED,eAAe,sBAAsB,CAAC"}