@scallop-io/sui-scallop-sdk 0.46.64 → 0.46.65
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.
- package/dist/index.js +48 -47
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +48 -47
- package/dist/index.mjs.map +1 -1
- package/dist/queries/borrowIncentiveQuery.d.ts +9 -9
- package/package.json +1 -1
- package/src/queries/borrowIncentiveQuery.ts +15 -17
- package/src/queries/coreQuery.ts +44 -39
- package/src/queries/spoolQuery.ts +6 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ScallopAddress, ScallopQuery, ScallopUtils } from '../models';
|
|
2
|
-
import type { SupportBorrowIncentiveCoins } from '../types';
|
|
2
|
+
import type { SupportBorrowIncentiveCoins, BorrowIncentivePool } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* Query borrow incentive pools data.
|
|
5
5
|
*
|
|
@@ -9,14 +9,14 @@ import type { SupportBorrowIncentiveCoins } from '../types';
|
|
|
9
9
|
* @return Borrow incentive pools data.
|
|
10
10
|
*/
|
|
11
11
|
export declare const queryBorrowIncentivePools: (query: ScallopQuery, borrowIncentiveCoinNames?: SupportBorrowIncentiveCoins[], indexer?: boolean) => Promise<{
|
|
12
|
-
eth?:
|
|
13
|
-
usdc?:
|
|
14
|
-
usdt?:
|
|
15
|
-
sui?:
|
|
16
|
-
afsui?:
|
|
17
|
-
hasui?:
|
|
18
|
-
vsui?:
|
|
19
|
-
sca?:
|
|
12
|
+
eth?: BorrowIncentivePool | undefined;
|
|
13
|
+
usdc?: BorrowIncentivePool | undefined;
|
|
14
|
+
usdt?: BorrowIncentivePool | undefined;
|
|
15
|
+
sui?: BorrowIncentivePool | undefined;
|
|
16
|
+
afsui?: BorrowIncentivePool | undefined;
|
|
17
|
+
hasui?: BorrowIncentivePool | undefined;
|
|
18
|
+
vsui?: BorrowIncentivePool | undefined;
|
|
19
|
+
sca?: BorrowIncentivePool | undefined;
|
|
20
20
|
}>;
|
|
21
21
|
/**
|
|
22
22
|
* Query borrow incentive accounts data.
|
package/package.json
CHANGED
|
@@ -18,6 +18,7 @@ import type {
|
|
|
18
18
|
SupportBorrowIncentiveRewardCoins,
|
|
19
19
|
BorrowIncentivePoolPoints,
|
|
20
20
|
OptionalKeys,
|
|
21
|
+
BorrowIncentivePool,
|
|
21
22
|
} from '../types';
|
|
22
23
|
import BigNumber from 'bignumber.js';
|
|
23
24
|
|
|
@@ -31,13 +32,11 @@ import BigNumber from 'bignumber.js';
|
|
|
31
32
|
*/
|
|
32
33
|
export const queryBorrowIncentivePools = async (
|
|
33
34
|
query: ScallopQuery,
|
|
34
|
-
borrowIncentiveCoinNames
|
|
35
|
+
borrowIncentiveCoinNames: SupportBorrowIncentiveCoins[] = [
|
|
36
|
+
...SUPPORT_BORROW_INCENTIVE_POOLS,
|
|
37
|
+
],
|
|
35
38
|
indexer: boolean = false
|
|
36
39
|
) => {
|
|
37
|
-
borrowIncentiveCoinNames = borrowIncentiveCoinNames || [
|
|
38
|
-
...SUPPORT_BORROW_INCENTIVE_POOLS,
|
|
39
|
-
];
|
|
40
|
-
|
|
41
40
|
const borrowIncentivePools: BorrowIncentivePools = {};
|
|
42
41
|
|
|
43
42
|
const coinPrices = await query.utils.getCoinPrices(
|
|
@@ -52,18 +51,17 @@ export const queryBorrowIncentivePools = async (
|
|
|
52
51
|
if (indexer) {
|
|
53
52
|
const borrowIncentivePoolsIndexer =
|
|
54
53
|
await query.indexer.getBorrowIncentivePools();
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
54
|
+
|
|
55
|
+
const updateBorrowIncentivePool = (pool: BorrowIncentivePool) => {
|
|
56
|
+
if (!borrowIncentiveCoinNames.includes(pool.coinName)) return;
|
|
57
|
+
pool.coinPrice = coinPrices[pool.coinName] || pool.coinPrice;
|
|
58
|
+
borrowIncentivePools[pool.coinName] = pool;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
Object.values(borrowIncentivePoolsIndexer).forEach(
|
|
62
|
+
updateBorrowIncentivePool
|
|
63
|
+
);
|
|
64
|
+
|
|
67
65
|
return borrowIncentivePools;
|
|
68
66
|
}
|
|
69
67
|
|
package/src/queries/coreQuery.ts
CHANGED
|
@@ -60,20 +60,25 @@ export const queryMarket = async (
|
|
|
60
60
|
|
|
61
61
|
if (indexer) {
|
|
62
62
|
const marketIndexer = await query.indexer.getMarket();
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
);
|
|
73
|
-
|
|
63
|
+
|
|
64
|
+
const updatePools = (item: MarketPool) => {
|
|
65
|
+
item.coinPrice = coinPrices[item.coinName] || item.coinPrice;
|
|
66
|
+
item.coinWrappedType = query.utils.getCoinWrappedType(item.coinName);
|
|
67
|
+
pools[item.coinName] = item;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const updateCollaterals = (item: MarketCollateral) => {
|
|
71
|
+
item.coinPrice = coinPrices[item.coinName] || item.coinPrice;
|
|
72
|
+
item.coinWrappedType = query.utils.getCoinWrappedType(item.coinName);
|
|
73
|
+
collaterals[item.coinName] = item;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
Object.values(marketIndexer.pools).forEach(updatePools);
|
|
77
|
+
Object.values(marketIndexer.collaterals).forEach(updateCollaterals);
|
|
78
|
+
|
|
74
79
|
return {
|
|
75
|
-
pools
|
|
76
|
-
collaterals
|
|
80
|
+
pools,
|
|
81
|
+
collaterals,
|
|
77
82
|
};
|
|
78
83
|
}
|
|
79
84
|
|
|
@@ -221,10 +226,9 @@ export const queryMarket = async (
|
|
|
221
226
|
*/
|
|
222
227
|
export const getMarketPools = async (
|
|
223
228
|
query: ScallopQuery,
|
|
224
|
-
poolCoinNames
|
|
229
|
+
poolCoinNames: SupportPoolCoins[] = [...SUPPORT_POOLS],
|
|
225
230
|
indexer: boolean = false
|
|
226
231
|
) => {
|
|
227
|
-
poolCoinNames = poolCoinNames || [...SUPPORT_POOLS];
|
|
228
232
|
const marketId = query.address.get('core.market');
|
|
229
233
|
const marketObjectResponse = await query.cache.queryGetObject(marketId, {
|
|
230
234
|
showContent: true,
|
|
@@ -235,15 +239,18 @@ export const getMarketPools = async (
|
|
|
235
239
|
|
|
236
240
|
if (indexer) {
|
|
237
241
|
const marketPoolsIndexer = await query.indexer.getMarketPools();
|
|
238
|
-
|
|
239
|
-
|
|
242
|
+
|
|
243
|
+
const updateMarketPool = (marketPool: MarketPool) => {
|
|
244
|
+
if (!poolCoinNames.includes(marketPool.coinName)) return;
|
|
240
245
|
marketPool.coinPrice =
|
|
241
246
|
coinPrices[marketPool.coinName] || marketPool.coinPrice;
|
|
242
247
|
marketPool.coinWrappedType = query.utils.getCoinWrappedType(
|
|
243
248
|
marketPool.coinName
|
|
244
249
|
);
|
|
245
250
|
marketPools[marketPool.coinName] = marketPool;
|
|
246
|
-
}
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
Object.values(marketPoolsIndexer).forEach(updateMarketPool);
|
|
247
254
|
|
|
248
255
|
return marketPools;
|
|
249
256
|
}
|
|
@@ -290,6 +297,10 @@ export const getMarketPool = async (
|
|
|
290
297
|
let interestModel: InterestModel | undefined;
|
|
291
298
|
let borrowFeeRate: { value: string } | undefined;
|
|
292
299
|
|
|
300
|
+
coinPrice =
|
|
301
|
+
coinPrice ||
|
|
302
|
+
(await query.utils.getCoinPrices([poolCoinName]))?.[poolCoinName];
|
|
303
|
+
|
|
293
304
|
if (indexer) {
|
|
294
305
|
const marketPoolIndexer = await query.indexer.getMarketPool(poolCoinName);
|
|
295
306
|
marketPoolIndexer.coinPrice = coinPrice || marketPoolIndexer.coinPrice;
|
|
@@ -309,10 +320,6 @@ export const getMarketPool = async (
|
|
|
309
320
|
})
|
|
310
321
|
)?.data;
|
|
311
322
|
|
|
312
|
-
coinPrice =
|
|
313
|
-
coinPrice ||
|
|
314
|
-
(await query.utils.getCoinPrices([poolCoinName]))?.[poolCoinName];
|
|
315
|
-
|
|
316
323
|
if (marketObject) {
|
|
317
324
|
if (marketObject.content && 'fields' in marketObject.content) {
|
|
318
325
|
const fields = marketObject.content.fields as any;
|
|
@@ -507,33 +514,31 @@ export const getMarketPool = async (
|
|
|
507
514
|
*/
|
|
508
515
|
export const getMarketCollaterals = async (
|
|
509
516
|
query: ScallopQuery,
|
|
510
|
-
collateralCoinNames
|
|
517
|
+
collateralCoinNames: SupportCollateralCoins[] = [...SUPPORT_COLLATERALS],
|
|
511
518
|
indexer: boolean = false
|
|
512
519
|
) => {
|
|
513
|
-
collateralCoinNames = collateralCoinNames || [...SUPPORT_COLLATERALS];
|
|
514
520
|
const marketId = query.address.get('core.market');
|
|
515
|
-
const
|
|
516
|
-
await query.cache.queryGetObject(marketId, {
|
|
517
|
-
showContent: true,
|
|
518
|
-
}),
|
|
519
|
-
await query.utils.getCoinPrices(collateralCoinNames ?? []),
|
|
520
|
-
]);
|
|
521
|
+
const coinPrices = await query.utils.getCoinPrices(collateralCoinNames ?? []);
|
|
521
522
|
const marketCollaterals: MarketCollaterals = {};
|
|
522
523
|
|
|
523
524
|
if (indexer) {
|
|
524
525
|
const marketCollateralsIndexer = await query.indexer.getMarketCollaterals();
|
|
525
|
-
|
|
526
|
-
if (!collateralCoinNames.includes(marketCollateral.coinName))
|
|
526
|
+
const updateMarketCollateral = (marketCollateral: MarketCollateral) => {
|
|
527
|
+
if (!collateralCoinNames.includes(marketCollateral.coinName)) return;
|
|
527
528
|
marketCollateral.coinPrice =
|
|
528
529
|
coinPrices[marketCollateral.coinName] || marketCollateral.coinPrice;
|
|
529
530
|
marketCollateral.coinWrappedType = query.utils.getCoinWrappedType(
|
|
530
531
|
marketCollateral.coinName
|
|
531
532
|
);
|
|
532
533
|
marketCollaterals[marketCollateral.coinName] = marketCollateral;
|
|
533
|
-
}
|
|
534
|
+
};
|
|
535
|
+
Object.values(marketCollateralsIndexer).forEach(updateMarketCollateral);
|
|
534
536
|
return marketCollaterals;
|
|
535
537
|
}
|
|
536
538
|
|
|
539
|
+
const marketObjectResponse = await query.cache.queryGetObject(marketId, {
|
|
540
|
+
showContent: true,
|
|
541
|
+
});
|
|
537
542
|
await Promise.allSettled(
|
|
538
543
|
collateralCoinNames.map(async (collateralCoinName) => {
|
|
539
544
|
const marketCollateral = await getMarketCollateral(
|
|
@@ -570,6 +575,12 @@ export const getMarketCollateral = async (
|
|
|
570
575
|
marketObject?: SuiObjectData | null,
|
|
571
576
|
coinPrice?: number
|
|
572
577
|
) => {
|
|
578
|
+
coinPrice =
|
|
579
|
+
coinPrice ||
|
|
580
|
+
(await query.utils.getCoinPrices([collateralCoinName]))?.[
|
|
581
|
+
collateralCoinName
|
|
582
|
+
];
|
|
583
|
+
|
|
573
584
|
if (indexer) {
|
|
574
585
|
const marketCollateralIndexer =
|
|
575
586
|
await query.indexer.getMarketCollateral(collateralCoinName);
|
|
@@ -595,12 +606,6 @@ export const getMarketCollateral = async (
|
|
|
595
606
|
})
|
|
596
607
|
)?.data;
|
|
597
608
|
|
|
598
|
-
coinPrice =
|
|
599
|
-
coinPrice ||
|
|
600
|
-
(await query.utils.getCoinPrices([collateralCoinName]))?.[
|
|
601
|
-
collateralCoinName
|
|
602
|
-
];
|
|
603
|
-
|
|
604
609
|
if (marketObject) {
|
|
605
610
|
if (marketObject.content && 'fields' in marketObject.content) {
|
|
606
611
|
const fields = marketObject.content.fields as any;
|
|
@@ -31,10 +31,9 @@ import type {
|
|
|
31
31
|
*/
|
|
32
32
|
export const getSpools = async (
|
|
33
33
|
query: ScallopQuery,
|
|
34
|
-
stakeMarketCoinNames
|
|
34
|
+
stakeMarketCoinNames: SupportStakeMarketCoins[] = [...SUPPORT_SPOOLS],
|
|
35
35
|
indexer: boolean = false
|
|
36
36
|
) => {
|
|
37
|
-
stakeMarketCoinNames = stakeMarketCoinNames || [...SUPPORT_SPOOLS];
|
|
38
37
|
const stakeCoinNames = stakeMarketCoinNames.map((stakeMarketCoinName) =>
|
|
39
38
|
query.utils.parseCoinName<SupportStakeCoins>(stakeMarketCoinName)
|
|
40
39
|
);
|
|
@@ -52,8 +51,8 @@ export const getSpools = async (
|
|
|
52
51
|
|
|
53
52
|
if (indexer) {
|
|
54
53
|
const spoolsIndexer = await query.indexer.getSpools();
|
|
55
|
-
|
|
56
|
-
if (!stakeMarketCoinNames.includes(spool.marketCoinName))
|
|
54
|
+
const updateSpools = (spool: Spool) => {
|
|
55
|
+
if (!stakeMarketCoinNames.includes(spool.marketCoinName)) return;
|
|
57
56
|
const coinName = query.utils.parseCoinName<SupportStakeCoins>(
|
|
58
57
|
spool.marketCoinName
|
|
59
58
|
);
|
|
@@ -68,7 +67,8 @@ export const getSpools = async (
|
|
|
68
67
|
spool.rewardCoinPrice =
|
|
69
68
|
coinPrices[rewardCoinName] || spool.rewardCoinPrice;
|
|
70
69
|
spools[spool.marketCoinName] = spool;
|
|
71
|
-
}
|
|
70
|
+
};
|
|
71
|
+
Object.values(spoolsIndexer).forEach(updateSpools);
|
|
72
72
|
|
|
73
73
|
return spools;
|
|
74
74
|
}
|
|
@@ -116,6 +116,7 @@ export const getSpool = async (
|
|
|
116
116
|
`spool.pools.${marketCoinName}.rewardPoolId`
|
|
117
117
|
);
|
|
118
118
|
let spool: Spool | undefined = undefined;
|
|
119
|
+
coinPrices = coinPrices || (await query.utils.getCoinPrices([coinName]));
|
|
119
120
|
|
|
120
121
|
if (indexer) {
|
|
121
122
|
const spoolIndexer = await query.indexer.getSpool(marketCoinName);
|