@scallop-io/sui-scallop-sdk 0.47.0-alpha.4 → 0.47.0-alpha.6
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/constants/common.d.ts +1 -1
- package/dist/index.js +43 -39
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +43 -39
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopQuery.d.ts +2 -0
- package/dist/queries/borrowIncentiveQuery.d.ts +11 -3
- package/dist/types/query/borrowIncentive.d.ts +2 -1
- package/package.json +1 -1
- package/src/builders/coreBuilder.ts +1 -1
- package/src/constants/common.ts +1 -3
- package/src/constants/enum.ts +3 -1
- package/src/models/scallopQuery.ts +2 -2
- package/src/models/scallopUtils.ts +5 -7
- package/src/queries/borrowIncentiveQuery.ts +32 -19
- package/src/queries/coreQuery.ts +4 -4
- package/src/queries/sCoinQuery.ts +1 -2
- package/src/queries/spoolQuery.ts +4 -3
- package/src/types/query/borrowIncentive.ts +2 -1
- package/src/utils/query.ts +1 -1
|
@@ -280,6 +280,7 @@ export declare class ScallopQuery {
|
|
|
280
280
|
* @return Borrow incentive pools data.
|
|
281
281
|
*/
|
|
282
282
|
getBorrowIncentivePools(coinNames?: SupportBorrowIncentiveCoins[], indexer?: boolean): Promise<{
|
|
283
|
+
usdc?: import("../types").BorrowIncentivePool | undefined;
|
|
283
284
|
weth?: import("../types").BorrowIncentivePool | undefined;
|
|
284
285
|
wusdc?: import("../types").BorrowIncentivePool | undefined;
|
|
285
286
|
wusdt?: import("../types").BorrowIncentivePool | undefined;
|
|
@@ -297,6 +298,7 @@ export declare class ScallopQuery {
|
|
|
297
298
|
* @return Borrow incentive accounts data.
|
|
298
299
|
*/
|
|
299
300
|
getBorrowIncentiveAccounts(obligationId: string, coinNames?: SupportBorrowIncentiveCoins[]): Promise<{
|
|
301
|
+
usdc?: import("../types").ParsedBorrowIncentiveAccountData | undefined;
|
|
300
302
|
weth?: import("../types").ParsedBorrowIncentiveAccountData | undefined;
|
|
301
303
|
wusdc?: import("../types").ParsedBorrowIncentiveAccountData | undefined;
|
|
302
304
|
wusdt?: import("../types").ParsedBorrowIncentiveAccountData | undefined;
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import type { ScallopAddress, ScallopQuery, ScallopUtils } from '../models';
|
|
2
|
-
import type { SupportBorrowIncentiveCoins, BorrowIncentivePool } from '../types';
|
|
2
|
+
import type { BorrowIncentivePoolsQueryInterface, SupportBorrowIncentiveCoins, BorrowIncentivePool } from '../types';
|
|
3
3
|
/**
|
|
4
|
-
* Query borrow incentive pools data
|
|
4
|
+
* Query borrow incentive pools data using moveCall
|
|
5
|
+
* @param address
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export declare const queryBorrowIncentivePools: (address: ScallopAddress) => Promise<BorrowIncentivePoolsQueryInterface | undefined>;
|
|
9
|
+
/**
|
|
10
|
+
* Get borrow incentive pools data.
|
|
5
11
|
*
|
|
6
12
|
* @param query - The Scallop query instance.
|
|
7
13
|
* @param borrowIncentiveCoinNames - Specific an array of support borrow incentive coin name.
|
|
8
14
|
* @param indexer - Whether to use indexer.
|
|
9
15
|
* @return Borrow incentive pools data.
|
|
10
16
|
*/
|
|
11
|
-
export declare const
|
|
17
|
+
export declare const getBorrowIncentivePools: (query: ScallopQuery, borrowIncentiveCoinNames?: SupportBorrowIncentiveCoins[], indexer?: boolean) => Promise<{
|
|
18
|
+
usdc?: BorrowIncentivePool | undefined;
|
|
12
19
|
weth?: BorrowIncentivePool | undefined;
|
|
13
20
|
wusdc?: BorrowIncentivePool | undefined;
|
|
14
21
|
wusdt?: BorrowIncentivePool | undefined;
|
|
@@ -28,6 +35,7 @@ export declare const queryBorrowIncentivePools: (query: ScallopQuery, borrowInce
|
|
|
28
35
|
export declare const queryBorrowIncentiveAccounts: ({ utils, }: {
|
|
29
36
|
utils: ScallopUtils;
|
|
30
37
|
}, obligationId: string, borrowIncentiveCoinNames?: SupportBorrowIncentiveCoins[]) => Promise<{
|
|
38
|
+
usdc?: import("../types").ParsedBorrowIncentiveAccountData | undefined;
|
|
31
39
|
weth?: import("../types").ParsedBorrowIncentiveAccountData | undefined;
|
|
32
40
|
wusdc?: import("../types").ParsedBorrowIncentiveAccountData | undefined;
|
|
33
41
|
wusdt?: import("../types").ParsedBorrowIncentiveAccountData | undefined;
|
|
@@ -37,6 +37,7 @@ export type OriginBorrowIncentivePoolPointData = {
|
|
|
37
37
|
base_weight: string;
|
|
38
38
|
weighted_amount: string;
|
|
39
39
|
last_update: string;
|
|
40
|
+
created_at: string;
|
|
40
41
|
};
|
|
41
42
|
export type OriginBorrowIncentivePoolData = {
|
|
42
43
|
pool_type: {
|
|
@@ -58,6 +59,7 @@ export type ParsedBorrowIncentivePoolPointData = {
|
|
|
58
59
|
baseWeight: number;
|
|
59
60
|
weightedAmount: number;
|
|
60
61
|
lastUpdate: number;
|
|
62
|
+
createdAt: number;
|
|
61
63
|
};
|
|
62
64
|
export type ParsedBorrowIncentivePoolData = {
|
|
63
65
|
poolType: string;
|
|
@@ -65,7 +67,6 @@ export type ParsedBorrowIncentivePoolData = {
|
|
|
65
67
|
minStakes: number;
|
|
66
68
|
maxStakes: number;
|
|
67
69
|
staked: number;
|
|
68
|
-
createdAt: number;
|
|
69
70
|
};
|
|
70
71
|
export type CalculatedBorrowIncentivePoolPointData = {
|
|
71
72
|
baseWeight: number;
|
package/package.json
CHANGED
|
@@ -392,7 +392,7 @@ const generateCoreQuickMethod: GenerateCoreQuickMethod = ({
|
|
|
392
392
|
(await builder.utils.getObligationCoinNames(
|
|
393
393
|
obligationInfo.obligationId
|
|
394
394
|
)) ?? [];
|
|
395
|
-
const updateCoinNames = [...
|
|
395
|
+
const updateCoinNames = [...obligationCoinNames, poolCoinName];
|
|
396
396
|
await updateOracles(builder, txBlock, updateCoinNames);
|
|
397
397
|
return txBlock.borrow(
|
|
398
398
|
obligationInfo.obligationId,
|
package/src/constants/common.ts
CHANGED
|
@@ -5,14 +5,11 @@ export const SDK_API_BASE_URL = 'https://sdk.api.scallop.io';
|
|
|
5
5
|
export const IS_VE_SCA_TEST = false;
|
|
6
6
|
export const USE_TEST_ADDRESS = false;
|
|
7
7
|
|
|
8
|
-
// export const ADDRESSES_ID = '';
|
|
9
8
|
export const ADDRESSES_ID =
|
|
10
9
|
IS_VE_SCA_TEST || USE_TEST_ADDRESS
|
|
11
10
|
? ('65fb07c39c845425d71d7b18' as const)
|
|
12
11
|
: ('66f8e7ed9bb9e07fdfb86bbb' as const);
|
|
13
12
|
// : ('664dfe22898c36c159e28bc8' as const);
|
|
14
|
-
// : ('6601955b8b0024600a917079' as const);
|
|
15
|
-
// : ('6462a088a7ace142bb6d7e9b' as const);
|
|
16
13
|
|
|
17
14
|
export const PROTOCOL_OBJECT_ID = IS_VE_SCA_TEST
|
|
18
15
|
? ('0xc9f859f98ca352a11b97a038c4b4162bee437b8df8caa047990fe9cb03d4f778' as const)
|
|
@@ -103,6 +100,7 @@ export const SUPPORT_BORROW_INCENTIVE_POOLS = [
|
|
|
103
100
|
'vsui',
|
|
104
101
|
'weth',
|
|
105
102
|
'sca',
|
|
103
|
+
'usdc',
|
|
106
104
|
] as const;
|
|
107
105
|
|
|
108
106
|
export const SUPPORT_BORROW_INCENTIVE_REWARDS = ['sui', 'sca'] as const;
|
package/src/constants/enum.ts
CHANGED
|
@@ -102,6 +102,7 @@ export const spoolRewardCoins: types.StakeRewardCoins = {
|
|
|
102
102
|
};
|
|
103
103
|
|
|
104
104
|
export const borrowIncentiveRewardCoins: types.BorrowIncentiveRewardCoins = {
|
|
105
|
+
usdc: ['sui', 'sca'],
|
|
105
106
|
sui: ['sui', 'sca'],
|
|
106
107
|
wusdc: ['sui', 'sca'],
|
|
107
108
|
wusdt: ['sui', 'sca'],
|
|
@@ -145,7 +146,8 @@ export const voloCoinIds: types.VoloCoinIds = {
|
|
|
145
146
|
|
|
146
147
|
// PROD VERSION
|
|
147
148
|
export const sCoinIds: types.SCoinIds = {
|
|
148
|
-
susdc:
|
|
149
|
+
susdc:
|
|
150
|
+
'0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC',
|
|
149
151
|
ssui: '0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI',
|
|
150
152
|
scetus:
|
|
151
153
|
'0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS',
|
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
getMarketCollateral,
|
|
15
15
|
getSpools,
|
|
16
16
|
getSpool,
|
|
17
|
-
queryBorrowIncentivePools,
|
|
18
17
|
queryBorrowIncentiveAccounts,
|
|
19
18
|
getCoinAmounts,
|
|
20
19
|
getCoinAmount,
|
|
@@ -34,6 +33,7 @@ import {
|
|
|
34
33
|
getLoyaltyProgramInformations,
|
|
35
34
|
getFlashLoanFees,
|
|
36
35
|
getVeSca,
|
|
36
|
+
getBorrowIncentivePools,
|
|
37
37
|
} from '../queries';
|
|
38
38
|
import {
|
|
39
39
|
ScallopQueryParams,
|
|
@@ -462,7 +462,7 @@ export class ScallopQuery {
|
|
|
462
462
|
coinNames?: SupportBorrowIncentiveCoins[],
|
|
463
463
|
indexer: boolean = false
|
|
464
464
|
) {
|
|
465
|
-
return await
|
|
465
|
+
return await getBorrowIncentivePools(this, coinNames, indexer);
|
|
466
466
|
}
|
|
467
467
|
|
|
468
468
|
/**
|
|
@@ -475,13 +475,11 @@ export class ScallopUtils {
|
|
|
475
475
|
* @param assetCoinNames - Specific an array of support asset coin name.
|
|
476
476
|
* @return Asset coin price.
|
|
477
477
|
*/
|
|
478
|
-
public async getCoinPrices(
|
|
479
|
-
assetCoinNames =
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
] as SupportAssetCoins[]);
|
|
484
|
-
|
|
478
|
+
public async getCoinPrices(
|
|
479
|
+
assetCoinNames: SupportAssetCoins[] = [
|
|
480
|
+
...new Set([...SUPPORT_POOLS, ...SUPPORT_COLLATERALS]),
|
|
481
|
+
] as SupportAssetCoins[]
|
|
482
|
+
) {
|
|
485
483
|
const coinPrices: CoinPrices = {};
|
|
486
484
|
const existPricesCoinNames: SupportAssetCoins[] = [];
|
|
487
485
|
const lackPricesCoinNames: SupportAssetCoins[] = [];
|
|
@@ -23,14 +23,35 @@ import type {
|
|
|
23
23
|
import BigNumber from 'bignumber.js';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* Query borrow incentive pools data
|
|
26
|
+
* Query borrow incentive pools data using moveCall
|
|
27
|
+
* @param address
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
export const queryBorrowIncentivePools = async (address: ScallopAddress) => {
|
|
31
|
+
const queryPkgId = address.get('borrowIncentive.query');
|
|
32
|
+
const incentivePoolsId = address.get('borrowIncentive.incentivePools');
|
|
33
|
+
|
|
34
|
+
const queryTarget = `${queryPkgId}::incentive_pools_query::incentive_pools_data`;
|
|
35
|
+
const args = [incentivePoolsId];
|
|
36
|
+
const queryResult = await address.cache.queryInspectTxn({
|
|
37
|
+
queryTarget,
|
|
38
|
+
args,
|
|
39
|
+
});
|
|
40
|
+
const borrowIncentivePoolsQueryData = queryResult?.events[0].parsedJson as
|
|
41
|
+
| BorrowIncentivePoolsQueryInterface
|
|
42
|
+
| undefined;
|
|
43
|
+
return borrowIncentivePoolsQueryData;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Get borrow incentive pools data.
|
|
27
48
|
*
|
|
28
49
|
* @param query - The Scallop query instance.
|
|
29
50
|
* @param borrowIncentiveCoinNames - Specific an array of support borrow incentive coin name.
|
|
30
51
|
* @param indexer - Whether to use indexer.
|
|
31
52
|
* @return Borrow incentive pools data.
|
|
32
53
|
*/
|
|
33
|
-
export const
|
|
54
|
+
export const getBorrowIncentivePools = async (
|
|
34
55
|
query: ScallopQuery,
|
|
35
56
|
borrowIncentiveCoinNames: SupportBorrowIncentiveCoins[] = [
|
|
36
57
|
...SUPPORT_BORROW_INCENTIVE_POOLS,
|
|
@@ -39,14 +60,13 @@ export const queryBorrowIncentivePools = async (
|
|
|
39
60
|
) => {
|
|
40
61
|
const borrowIncentivePools: BorrowIncentivePools = {};
|
|
41
62
|
|
|
42
|
-
const coinPrices =
|
|
43
|
-
[
|
|
63
|
+
const coinPrices =
|
|
64
|
+
(await query.utils.getCoinPrices([
|
|
44
65
|
...new Set([
|
|
45
66
|
...borrowIncentiveCoinNames,
|
|
46
67
|
...SUPPORT_BORROW_INCENTIVE_REWARDS,
|
|
47
68
|
]),
|
|
48
|
-
] ??
|
|
49
|
-
);
|
|
69
|
+
])) ?? {};
|
|
50
70
|
|
|
51
71
|
if (indexer) {
|
|
52
72
|
const borrowIncentivePoolsIndexer =
|
|
@@ -65,15 +85,9 @@ export const queryBorrowIncentivePools = async (
|
|
|
65
85
|
return borrowIncentivePools;
|
|
66
86
|
}
|
|
67
87
|
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const queryTarget = `${queryPkgId}::incentive_pools_query::incentive_pools_data`;
|
|
72
|
-
const args = [incentivePoolsId];
|
|
73
|
-
const queryResult = await query.cache.queryInspectTxn({ queryTarget, args });
|
|
74
|
-
const borrowIncentivePoolsQueryData = queryResult?.events[0].parsedJson as
|
|
75
|
-
| BorrowIncentivePoolsQueryInterface
|
|
76
|
-
| undefined;
|
|
88
|
+
const borrowIncentivePoolsQueryData = await queryBorrowIncentivePools(
|
|
89
|
+
query.address
|
|
90
|
+
);
|
|
77
91
|
|
|
78
92
|
for (const pool of borrowIncentivePoolsQueryData?.incentive_pools ?? []) {
|
|
79
93
|
const borrowIncentivePoolPoints: OptionalKeys<
|
|
@@ -167,11 +181,10 @@ export const queryBorrowIncentiveAccounts = async (
|
|
|
167
181
|
utils: ScallopUtils;
|
|
168
182
|
},
|
|
169
183
|
obligationId: string,
|
|
170
|
-
borrowIncentiveCoinNames
|
|
171
|
-
) => {
|
|
172
|
-
borrowIncentiveCoinNames = borrowIncentiveCoinNames || [
|
|
184
|
+
borrowIncentiveCoinNames: SupportBorrowIncentiveCoins[] = [
|
|
173
185
|
...SUPPORT_BORROW_INCENTIVE_POOLS,
|
|
174
|
-
]
|
|
186
|
+
]
|
|
187
|
+
) => {
|
|
175
188
|
const queryPkgId = utils.address.get('borrowIncentive.query');
|
|
176
189
|
const incentiveAccountsId = utils.address.get(
|
|
177
190
|
'borrowIncentive.incentiveAccounts'
|
package/src/queries/coreQuery.ts
CHANGED
|
@@ -233,7 +233,7 @@ export const getMarketPools = async (
|
|
|
233
233
|
const marketObjectResponse = await query.cache.queryGetObject(marketId, {
|
|
234
234
|
showContent: true,
|
|
235
235
|
});
|
|
236
|
-
const coinPrices = await query.utils.getCoinPrices(poolCoinNames ??
|
|
236
|
+
const coinPrices = (await query.utils.getCoinPrices(poolCoinNames)) ?? {};
|
|
237
237
|
|
|
238
238
|
const marketPools: MarketPools = {};
|
|
239
239
|
|
|
@@ -518,7 +518,8 @@ export const getMarketCollaterals = async (
|
|
|
518
518
|
indexer: boolean = false
|
|
519
519
|
) => {
|
|
520
520
|
const marketId = query.address.get('core.market');
|
|
521
|
-
const coinPrices =
|
|
521
|
+
const coinPrices =
|
|
522
|
+
(await query.utils.getCoinPrices(collateralCoinNames)) ?? {};
|
|
522
523
|
const marketCollaterals: MarketCollaterals = {};
|
|
523
524
|
|
|
524
525
|
if (indexer) {
|
|
@@ -845,10 +846,9 @@ export const queryObligation = async (
|
|
|
845
846
|
*/
|
|
846
847
|
export const getCoinAmounts = async (
|
|
847
848
|
query: ScallopQuery,
|
|
848
|
-
assetCoinNames
|
|
849
|
+
assetCoinNames: SupportAssetCoins[] = [...SUPPORT_POOLS],
|
|
849
850
|
ownerAddress?: string
|
|
850
851
|
) => {
|
|
851
|
-
assetCoinNames = assetCoinNames || [...SUPPORT_POOLS];
|
|
852
852
|
const owner = ownerAddress || query.suiKit.currentAddress();
|
|
853
853
|
const assetCoins = {} as OptionalKeys<Record<SupportAssetCoins, number>>;
|
|
854
854
|
|
|
@@ -60,10 +60,9 @@ export const getSCoinAmounts = async (
|
|
|
60
60
|
}: {
|
|
61
61
|
utils: ScallopUtils;
|
|
62
62
|
},
|
|
63
|
-
sCoinNames
|
|
63
|
+
sCoinNames: SupportSCoin[] = [...SUPPORT_SCOIN],
|
|
64
64
|
ownerAddress?: string
|
|
65
65
|
) => {
|
|
66
|
-
sCoinNames = sCoinNames || [...SUPPORT_SCOIN];
|
|
67
66
|
const owner = ownerAddress || utils.suiKit.currentAddress();
|
|
68
67
|
const sCoins = {} as OptionalKeys<Record<SupportSCoin, number>>;
|
|
69
68
|
|
|
@@ -42,9 +42,10 @@ export const getSpools = async (
|
|
|
42
42
|
query.utils.getSpoolRewardCoinName(stakeMarketCoinName);
|
|
43
43
|
return rewardCoinName;
|
|
44
44
|
});
|
|
45
|
-
const coinPrices =
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
const coinPrices =
|
|
46
|
+
(await query.utils.getCoinPrices([
|
|
47
|
+
...new Set([...stakeCoinNames, ...rewardCoinNames]),
|
|
48
|
+
])) ?? {};
|
|
48
49
|
|
|
49
50
|
const marketPools = await query.getMarketPools(stakeCoinNames, indexer);
|
|
50
51
|
const spools: Spools = {};
|
|
@@ -56,6 +56,7 @@ export type OriginBorrowIncentivePoolPointData = {
|
|
|
56
56
|
base_weight: string;
|
|
57
57
|
weighted_amount: string;
|
|
58
58
|
last_update: string;
|
|
59
|
+
created_at: string;
|
|
59
60
|
};
|
|
60
61
|
|
|
61
62
|
export type OriginBorrowIncentivePoolData = {
|
|
@@ -79,6 +80,7 @@ export type ParsedBorrowIncentivePoolPointData = {
|
|
|
79
80
|
baseWeight: number;
|
|
80
81
|
weightedAmount: number;
|
|
81
82
|
lastUpdate: number;
|
|
83
|
+
createdAt: number;
|
|
82
84
|
};
|
|
83
85
|
|
|
84
86
|
export type ParsedBorrowIncentivePoolData = {
|
|
@@ -92,7 +94,6 @@ export type ParsedBorrowIncentivePoolData = {
|
|
|
92
94
|
minStakes: number;
|
|
93
95
|
maxStakes: number;
|
|
94
96
|
staked: number;
|
|
95
|
-
createdAt: number;
|
|
96
97
|
};
|
|
97
98
|
|
|
98
99
|
export type CalculatedBorrowIncentivePoolPointData = {
|
package/src/utils/query.ts
CHANGED
|
@@ -412,6 +412,7 @@ export const parseOriginBorrowIncentivesPoolPointData = (
|
|
|
412
412
|
baseWeight: Number(originBorrowIncentivePoolPointData.base_weight),
|
|
413
413
|
weightedAmount: Number(originBorrowIncentivePoolPointData.weighted_amount),
|
|
414
414
|
lastUpdate: Number(originBorrowIncentivePoolPointData.last_update),
|
|
415
|
+
createdAt: Number(originBorrowIncentivePoolPointData.created_at),
|
|
415
416
|
};
|
|
416
417
|
};
|
|
417
418
|
|
|
@@ -429,7 +430,6 @@ export const parseOriginBorrowIncentivePoolData = (
|
|
|
429
430
|
minStakes: Number(originBorrowIncentivePoolData.min_stakes),
|
|
430
431
|
maxStakes: Number(originBorrowIncentivePoolData.max_stakes),
|
|
431
432
|
staked: Number(originBorrowIncentivePoolData.stakes),
|
|
432
|
-
createdAt: Number(originBorrowIncentivePoolData.created_at),
|
|
433
433
|
poolPoints: originBorrowIncentivePoolData.points.reduce(
|
|
434
434
|
(acc, point) => {
|
|
435
435
|
const parsed = parseOriginBorrowIncentivesPoolPointData(point);
|