@scallop-io/sui-scallop-sdk 0.44.14 → 0.44.16
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 +84 -54
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +84 -54
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopBuilder.d.ts +2 -2
- package/dist/models/scallopQuery.d.ts +12 -3
- package/dist/queries/coreQuery.d.ts +3 -3
- package/dist/queries/spoolQuery.d.ts +3 -0
- package/dist/types/query/borrowIncentive.d.ts +0 -5
- package/dist/types/query/portfolio.d.ts +2 -1
- package/dist/types/query/spool.d.ts +0 -7
- package/package.json +1 -1
- package/src/builders/spoolBuilder.ts +2 -2
- package/src/constants/common.ts +8 -1
- package/src/constants/enum.ts +6 -0
- package/src/models/scallopAddress.ts +16 -0
- package/src/models/scallopBuilder.ts +5 -5
- package/src/queries/portfolioQuery.ts +5 -0
- package/src/queries/spoolQuery.ts +39 -47
- package/src/types/query/borrowIncentive.ts +0 -5
- package/src/types/query/portfolio.ts +4 -1
- package/src/types/query/spool.ts +0 -7
- package/src/utils/query.ts +0 -18
|
@@ -29,9 +29,9 @@ export declare class ScallopBuilder {
|
|
|
29
29
|
/**
|
|
30
30
|
* Request the scallop API to initialize data.
|
|
31
31
|
*
|
|
32
|
-
* @param
|
|
32
|
+
* @param force - Whether to force initialization.
|
|
33
33
|
*/
|
|
34
|
-
init(
|
|
34
|
+
init(force?: boolean): Promise<void>;
|
|
35
35
|
/**
|
|
36
36
|
* Create a scallop txBlock instance that enhances transaction block.
|
|
37
37
|
*
|
|
@@ -151,14 +151,14 @@ export declare class ScallopQuery {
|
|
|
151
151
|
ssui?: number | undefined;
|
|
152
152
|
susdc?: number | undefined;
|
|
153
153
|
susdt?: number | undefined;
|
|
154
|
+
safsui?: number | undefined;
|
|
155
|
+
shasui?: number | undefined;
|
|
156
|
+
svsui?: number | undefined;
|
|
154
157
|
seth?: number | undefined;
|
|
155
158
|
sbtc?: number | undefined;
|
|
156
159
|
sapt?: number | undefined;
|
|
157
160
|
ssol?: number | undefined;
|
|
158
161
|
scetus?: number | undefined;
|
|
159
|
-
safsui?: number | undefined;
|
|
160
|
-
shasui?: number | undefined;
|
|
161
|
-
svsui?: number | undefined;
|
|
162
162
|
}>;
|
|
163
163
|
/**
|
|
164
164
|
* Get market coin amount.
|
|
@@ -186,6 +186,9 @@ export declare class ScallopQuery {
|
|
|
186
186
|
ssui?: import("../types").Spool | undefined;
|
|
187
187
|
susdc?: import("../types").Spool | undefined;
|
|
188
188
|
susdt?: import("../types").Spool | undefined;
|
|
189
|
+
safsui?: import("../types").Spool | undefined;
|
|
190
|
+
shasui?: import("../types").Spool | undefined;
|
|
191
|
+
svsui?: import("../types").Spool | undefined;
|
|
189
192
|
}>;
|
|
190
193
|
/**
|
|
191
194
|
* Get spool data.
|
|
@@ -224,6 +227,9 @@ export declare class ScallopQuery {
|
|
|
224
227
|
ssui?: import("../types").StakePool | undefined;
|
|
225
228
|
susdc?: import("../types").StakePool | undefined;
|
|
226
229
|
susdt?: import("../types").StakePool | undefined;
|
|
230
|
+
safsui?: import("../types").StakePool | undefined;
|
|
231
|
+
shasui?: import("../types").StakePool | undefined;
|
|
232
|
+
svsui?: import("../types").StakePool | undefined;
|
|
227
233
|
}>;
|
|
228
234
|
/**
|
|
229
235
|
* Get stake pool (spool) data.
|
|
@@ -250,6 +256,9 @@ export declare class ScallopQuery {
|
|
|
250
256
|
ssui?: import("../types").StakeRewardPool | undefined;
|
|
251
257
|
susdc?: import("../types").StakeRewardPool | undefined;
|
|
252
258
|
susdt?: import("../types").StakeRewardPool | undefined;
|
|
259
|
+
safsui?: import("../types").StakeRewardPool | undefined;
|
|
260
|
+
shasui?: import("../types").StakeRewardPool | undefined;
|
|
261
|
+
svsui?: import("../types").StakeRewardPool | undefined;
|
|
253
262
|
}>;
|
|
254
263
|
/**
|
|
255
264
|
* Get stake reward pool data.
|
|
@@ -154,14 +154,14 @@ export declare const getMarketCoinAmounts: (query: ScallopQuery, marketCoinNames
|
|
|
154
154
|
ssui?: number | undefined;
|
|
155
155
|
susdc?: number | undefined;
|
|
156
156
|
susdt?: number | undefined;
|
|
157
|
+
safsui?: number | undefined;
|
|
158
|
+
shasui?: number | undefined;
|
|
159
|
+
svsui?: number | undefined;
|
|
157
160
|
seth?: number | undefined;
|
|
158
161
|
sbtc?: number | undefined;
|
|
159
162
|
sapt?: number | undefined;
|
|
160
163
|
ssol?: number | undefined;
|
|
161
164
|
scetus?: number | undefined;
|
|
162
|
-
safsui?: number | undefined;
|
|
163
|
-
shasui?: number | undefined;
|
|
164
|
-
svsui?: number | undefined;
|
|
165
165
|
}>;
|
|
166
166
|
/**
|
|
167
167
|
* Query owned market coin (sCoin) amount.
|
|
@@ -12,6 +12,9 @@ export declare const getSpools: (query: ScallopQuery, stakeMarketCoinNames?: Sup
|
|
|
12
12
|
ssui?: Spool | undefined;
|
|
13
13
|
susdc?: Spool | undefined;
|
|
14
14
|
susdt?: Spool | undefined;
|
|
15
|
+
safsui?: Spool | undefined;
|
|
16
|
+
shasui?: Spool | undefined;
|
|
17
|
+
svsui?: Spool | undefined;
|
|
15
18
|
}>;
|
|
16
19
|
/**
|
|
17
20
|
* Get spool data.
|
|
@@ -59,8 +59,6 @@ export type OriginBorrowIncentiveRewardPoolData = {
|
|
|
59
59
|
claimed_rewards: string;
|
|
60
60
|
exchange_rate_denominator: string;
|
|
61
61
|
exchange_rate_numerator: string;
|
|
62
|
-
rewards_fee_rate_denominator: string;
|
|
63
|
-
rewards_fee_rate_numerator: string;
|
|
64
62
|
remaining_reward: string;
|
|
65
63
|
reward_type: {
|
|
66
64
|
name: string;
|
|
@@ -71,8 +69,6 @@ export type ParsedBorrowIncentiveRewardPoolData = {
|
|
|
71
69
|
claimedRewards: number;
|
|
72
70
|
exchangeRateDenominator: number;
|
|
73
71
|
exchangeRateNumerator: number;
|
|
74
|
-
rewardsFeeRateDenominator: number;
|
|
75
|
-
rewardsFeeRateNumerator: number;
|
|
76
72
|
remainingRewards: number;
|
|
77
73
|
};
|
|
78
74
|
export type CalculatedBorrowIncentiveRewardPoolData = {
|
|
@@ -87,7 +83,6 @@ export type CalculatedBorrowIncentiveRewardPoolData = {
|
|
|
87
83
|
claimedRewardCoin: number;
|
|
88
84
|
claimedRewardValue: number;
|
|
89
85
|
rewardPerSec: number;
|
|
90
|
-
rewardFee: number;
|
|
91
86
|
};
|
|
92
87
|
export type BorrowIncentiveAccounts = OptionalKeys<Record<SupportBorrowIncentiveCoins, ParsedBorrowIncentiveAccountData>>;
|
|
93
88
|
export type OriginBorrowIncentiveAccountData = {
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { MarketPool } from './core';
|
|
2
|
+
import type { Spool } from './spool';
|
|
2
3
|
import type { SupportPoolCoins, SupportCollateralCoins } from '../constant';
|
|
3
4
|
type OptionalKeys<T> = {
|
|
4
5
|
[K in keyof T]?: T[K];
|
|
5
6
|
};
|
|
6
7
|
export type Lendings = OptionalKeys<Record<SupportPoolCoins, Lending>>;
|
|
7
8
|
export type ObligationAccounts = OptionalKeys<Record<string, ObligationAccount>>;
|
|
8
|
-
export type Lending = Required<Pick<MarketPool, 'coinName' | 'symbol' | 'coinType' | 'marketCoinType' | 'coinDecimal' | 'coinPrice'>> & {
|
|
9
|
+
export type Lending = Required<Pick<MarketPool, 'coinName' | 'symbol' | 'coinType' | 'marketCoinType' | 'coinDecimal' | 'coinPrice' | 'conversionRate'> & Pick<Spool, 'marketCoinPrice'>> & {
|
|
9
10
|
supplyApr: number;
|
|
10
11
|
supplyApy: number;
|
|
11
12
|
rewardApr: number;
|
|
@@ -59,8 +59,6 @@ export type OriginSpoolRewardPoolData = {
|
|
|
59
59
|
claimed_rewards: string;
|
|
60
60
|
exchange_rate_denominator: string;
|
|
61
61
|
exchange_rate_numerator: string;
|
|
62
|
-
fee_rate_denominator: string;
|
|
63
|
-
fee_rate_numerator: string;
|
|
64
62
|
rewards: string;
|
|
65
63
|
spool_id: string;
|
|
66
64
|
};
|
|
@@ -68,8 +66,6 @@ export type ParsedSpoolRewardPoolData = {
|
|
|
68
66
|
claimedRewards: number;
|
|
69
67
|
exchangeRateDenominator: number;
|
|
70
68
|
exchangeRateNumerator: number;
|
|
71
|
-
feeRateDenominator: number;
|
|
72
|
-
feeRateNumerator: number;
|
|
73
69
|
rewards: number;
|
|
74
70
|
spoolId: string;
|
|
75
71
|
};
|
|
@@ -85,7 +81,6 @@ export type CalculatedSpoolRewardPoolData = {
|
|
|
85
81
|
claimedRewardCoin: number;
|
|
86
82
|
claimedRewardValue: number;
|
|
87
83
|
rewardPerSec: number;
|
|
88
|
-
rewardFee: number;
|
|
89
84
|
};
|
|
90
85
|
export type StakePools = OptionalKeys<Record<SupportStakeMarketCoins, StakePool>>;
|
|
91
86
|
export type StakeRewardPools = OptionalKeys<Record<SupportStakeMarketCoins, StakeRewardPool>>;
|
|
@@ -120,8 +115,6 @@ export interface StakeRewardPool {
|
|
|
120
115
|
stakePoolId: string;
|
|
121
116
|
ratioDenominator: number;
|
|
122
117
|
ratioNumerator: number;
|
|
123
|
-
feeRateDenominator: number;
|
|
124
|
-
feeRateNumerator: number;
|
|
125
118
|
rewards: number;
|
|
126
119
|
claimedRewards: number;
|
|
127
120
|
}
|
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@ import type {
|
|
|
21
21
|
* Check and get stake account id from transaction block.
|
|
22
22
|
*
|
|
23
23
|
* @description
|
|
24
|
-
* If the stake account id is provided,
|
|
24
|
+
* If the stake account id is provided, directly return it.
|
|
25
25
|
* Otherwise, automatically get all stake account id from the sender.
|
|
26
26
|
*
|
|
27
27
|
* @param builder - Scallop builder instance.
|
|
@@ -52,7 +52,7 @@ const requireStakeAccountIds = async (
|
|
|
52
52
|
* Check and get stake accounts information from transaction block.
|
|
53
53
|
*
|
|
54
54
|
* @description
|
|
55
|
-
* If the stake account id is provided,
|
|
55
|
+
* If the stake account id is provided, directly return its account.
|
|
56
56
|
* Otherwise, automatically get all stake account from the sender.
|
|
57
57
|
*
|
|
58
58
|
* @param builder - Scallop builder instance.
|
package/src/constants/common.ts
CHANGED
|
@@ -37,7 +37,14 @@ export const SUPPORT_COLLATERALS = [
|
|
|
37
37
|
'vsui',
|
|
38
38
|
] as const;
|
|
39
39
|
|
|
40
|
-
export const SUPPORT_SPOOLS = [
|
|
40
|
+
export const SUPPORT_SPOOLS = [
|
|
41
|
+
'ssui',
|
|
42
|
+
'susdc',
|
|
43
|
+
'susdt',
|
|
44
|
+
'safsui',
|
|
45
|
+
'shasui',
|
|
46
|
+
'svsui',
|
|
47
|
+
] as const;
|
|
41
48
|
|
|
42
49
|
export const SUPPORT_SPOOLS_REWARDS = ['sui'] as const;
|
|
43
50
|
|
package/src/constants/enum.ts
CHANGED
|
@@ -67,12 +67,18 @@ export const stakeMarketCoins: StakeMarketCoins = {
|
|
|
67
67
|
ssui: 'ssui',
|
|
68
68
|
susdc: 'susdc',
|
|
69
69
|
susdt: 'susdt',
|
|
70
|
+
safsui: 'safsui',
|
|
71
|
+
shasui: 'shasui',
|
|
72
|
+
svsui: 'svsui',
|
|
70
73
|
};
|
|
71
74
|
|
|
72
75
|
export const spoolRewardCoins: StakeRewardCoins = {
|
|
73
76
|
ssui: 'sui',
|
|
74
77
|
susdc: 'sui',
|
|
75
78
|
susdt: 'sui',
|
|
79
|
+
safsui: 'sui',
|
|
80
|
+
shasui: 'sui',
|
|
81
|
+
svsui: 'sui',
|
|
76
82
|
};
|
|
77
83
|
|
|
78
84
|
export const borrowIncentiveRewardCoins: BorrowIncentiveRewardCoins = {
|
|
@@ -199,6 +199,22 @@ const EMPTY_ADDRESSES: AddressesInterface = {
|
|
|
199
199
|
id: '',
|
|
200
200
|
rewardPoolId: '',
|
|
201
201
|
},
|
|
202
|
+
susdt: {
|
|
203
|
+
id: '',
|
|
204
|
+
rewardPoolId: '',
|
|
205
|
+
},
|
|
206
|
+
safsui: {
|
|
207
|
+
id: '',
|
|
208
|
+
rewardPoolId: '',
|
|
209
|
+
},
|
|
210
|
+
shasui: {
|
|
211
|
+
id: '',
|
|
212
|
+
rewardPoolId: '',
|
|
213
|
+
},
|
|
214
|
+
svsui: {
|
|
215
|
+
id: '',
|
|
216
|
+
rewardPoolId: '',
|
|
217
|
+
},
|
|
202
218
|
},
|
|
203
219
|
},
|
|
204
220
|
borrowIncentive: {
|
|
@@ -73,14 +73,14 @@ export class ScallopBuilder {
|
|
|
73
73
|
/**
|
|
74
74
|
* Request the scallop API to initialize data.
|
|
75
75
|
*
|
|
76
|
-
* @param
|
|
76
|
+
* @param force - Whether to force initialization.
|
|
77
77
|
*/
|
|
78
|
-
public async init(
|
|
79
|
-
if (
|
|
78
|
+
public async init(force: boolean = false) {
|
|
79
|
+
if (force || !this.address.getAddresses()) {
|
|
80
80
|
await this.address.read();
|
|
81
81
|
}
|
|
82
|
-
await this.query.init(
|
|
83
|
-
await this.utils.init(
|
|
82
|
+
await this.query.init(force);
|
|
83
|
+
await this.utils.init(force);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
/**
|
|
@@ -200,6 +200,9 @@ export const getLending = async (
|
|
|
200
200
|
const suppliedCoin = suppliedAmount.shiftedBy(-1 * coinDecimal);
|
|
201
201
|
const suppliedValue = suppliedCoin.multipliedBy(coinPrice ?? 0);
|
|
202
202
|
|
|
203
|
+
const marketCoinPrice = BigNumber(coinPrice ?? 0).multipliedBy(
|
|
204
|
+
marketPool?.conversionRate ?? 1
|
|
205
|
+
);
|
|
203
206
|
const unstakedMarketAmount = BigNumber(marketCoinAmount);
|
|
204
207
|
const unstakedMarketCoin = unstakedMarketAmount.shiftedBy(-1 * coinDecimal);
|
|
205
208
|
|
|
@@ -221,6 +224,8 @@ export const getLending = async (
|
|
|
221
224
|
marketCoinType: query.utils.parseMarketCoinType(poolCoinName),
|
|
222
225
|
coinDecimal: coinDecimal,
|
|
223
226
|
coinPrice: coinPrice ?? 0,
|
|
227
|
+
conversionRate: marketPool?.conversionRate ?? 1,
|
|
228
|
+
marketCoinPrice: marketCoinPrice.toNumber(),
|
|
224
229
|
supplyApr: marketPool?.supplyApr ?? 0,
|
|
225
230
|
supplyApy: marketPool?.supplyApy ?? 0,
|
|
226
231
|
rewardApr: spool?.rewardApr ?? 0,
|
|
@@ -111,7 +111,6 @@ export const getSpool = async (
|
|
|
111
111
|
) => {
|
|
112
112
|
const coinName = query.utils.parseCoinName<SupportStakeCoins>(marketCoinName);
|
|
113
113
|
marketPool = marketPool || (await query.getMarketPool(coinName, indexer));
|
|
114
|
-
const spoolPkgId = query.address.get(`spool.id`);
|
|
115
114
|
const poolId = query.address.get(`spool.pools.${marketCoinName}.id`);
|
|
116
115
|
const rewardPoolId = query.address.get(
|
|
117
116
|
`spool.pools.${marketCoinName}.rewardPoolId`
|
|
@@ -140,15 +139,6 @@ export const getSpool = async (
|
|
|
140
139
|
showContent: true,
|
|
141
140
|
},
|
|
142
141
|
});
|
|
143
|
-
const spoolRewardFeeDynamicFieldsResponse = await query.suiKit
|
|
144
|
-
.client()
|
|
145
|
-
.getDynamicFieldObject({
|
|
146
|
-
parentId: rewardPoolId,
|
|
147
|
-
name: {
|
|
148
|
-
type: `${spoolPkgId}::rewards_pool::RewardsPoolFeeKey`,
|
|
149
|
-
value: { dummy_field: false },
|
|
150
|
-
},
|
|
151
|
-
});
|
|
152
142
|
|
|
153
143
|
if (
|
|
154
144
|
marketPool &&
|
|
@@ -162,7 +152,6 @@ export const getSpool = async (
|
|
|
162
152
|
|
|
163
153
|
const spoolObject = spoolObjectResponse[0].data;
|
|
164
154
|
const rewardPoolObject = spoolObjectResponse[1].data;
|
|
165
|
-
const rewardFeeObject = spoolRewardFeeDynamicFieldsResponse.data;
|
|
166
155
|
if (spoolObject.content && 'fields' in spoolObject.content) {
|
|
167
156
|
const spoolFields = spoolObject.content.fields as any;
|
|
168
157
|
const parsedSpoolData = parseOriginSpoolData({
|
|
@@ -187,21 +176,12 @@ export const getSpool = async (
|
|
|
187
176
|
marketCoinDecimal
|
|
188
177
|
);
|
|
189
178
|
|
|
190
|
-
if (
|
|
191
|
-
rewardPoolObject.content &&
|
|
192
|
-
rewardFeeObject?.content &&
|
|
193
|
-
'fields' in rewardPoolObject.content &&
|
|
194
|
-
'fields' in rewardFeeObject.content
|
|
195
|
-
) {
|
|
179
|
+
if (rewardPoolObject.content && 'fields' in rewardPoolObject.content) {
|
|
196
180
|
const rewardPoolFields = rewardPoolObject.content.fields as any;
|
|
197
|
-
const rewardFeeFields = (rewardFeeObject.content.fields as any).value
|
|
198
|
-
.fields;
|
|
199
181
|
const parsedSpoolRewardPoolData = parseOriginSpoolRewardPoolData({
|
|
200
182
|
claimed_rewards: rewardPoolFields.claimed_rewards,
|
|
201
183
|
exchange_rate_numerator: rewardPoolFields.exchange_rate_numerator,
|
|
202
184
|
exchange_rate_denominator: rewardPoolFields.exchange_rate_denominator,
|
|
203
|
-
fee_rate_numerator: rewardFeeFields.fee_rate_numerator,
|
|
204
|
-
fee_rate_denominator: rewardFeeFields.fee_rate_denominator,
|
|
205
185
|
rewards: rewardPoolFields.rewards,
|
|
206
186
|
spool_id: rewardPoolFields.spool_id,
|
|
207
187
|
});
|
|
@@ -292,6 +272,9 @@ export const getStakeAccounts = async (
|
|
|
292
272
|
ssui: [],
|
|
293
273
|
susdc: [],
|
|
294
274
|
susdt: [],
|
|
275
|
+
safsui: [],
|
|
276
|
+
shasui: [],
|
|
277
|
+
svsui: [],
|
|
295
278
|
};
|
|
296
279
|
|
|
297
280
|
const stakeMarketCoinTypes: Record<SupportStakeMarketCoins, string> =
|
|
@@ -357,6 +340,39 @@ export const getStakeAccounts = async (
|
|
|
357
340
|
points,
|
|
358
341
|
totalPoints,
|
|
359
342
|
});
|
|
343
|
+
} else if (normalizeStructTag(type) === stakeMarketCoinTypes.safsui) {
|
|
344
|
+
stakeAccounts.safsui.push({
|
|
345
|
+
id,
|
|
346
|
+
type: normalizeStructTag(type),
|
|
347
|
+
stakePoolId,
|
|
348
|
+
stakeType: normalizeStructTag(stakeType),
|
|
349
|
+
staked,
|
|
350
|
+
index,
|
|
351
|
+
points,
|
|
352
|
+
totalPoints,
|
|
353
|
+
});
|
|
354
|
+
} else if (normalizeStructTag(type) === stakeMarketCoinTypes.shasui) {
|
|
355
|
+
stakeAccounts.shasui.push({
|
|
356
|
+
id,
|
|
357
|
+
type: normalizeStructTag(type),
|
|
358
|
+
stakePoolId,
|
|
359
|
+
stakeType: normalizeStructTag(stakeType),
|
|
360
|
+
staked,
|
|
361
|
+
index,
|
|
362
|
+
points,
|
|
363
|
+
totalPoints,
|
|
364
|
+
});
|
|
365
|
+
} else if (normalizeStructTag(type) === stakeMarketCoinTypes.svsui) {
|
|
366
|
+
stakeAccounts.svsui.push({
|
|
367
|
+
id,
|
|
368
|
+
type: normalizeStructTag(type),
|
|
369
|
+
stakePoolId,
|
|
370
|
+
stakeType: normalizeStructTag(stakeType),
|
|
371
|
+
staked,
|
|
372
|
+
index,
|
|
373
|
+
points,
|
|
374
|
+
totalPoints,
|
|
375
|
+
});
|
|
360
376
|
}
|
|
361
377
|
}
|
|
362
378
|
}
|
|
@@ -437,7 +453,6 @@ export const getStakeRewardPool = async (
|
|
|
437
453
|
query: ScallopQuery,
|
|
438
454
|
marketCoinName: SupportStakeMarketCoins
|
|
439
455
|
) => {
|
|
440
|
-
const spoolPkgId = query.address.get('spool.id');
|
|
441
456
|
const poolId = query.address.get(
|
|
442
457
|
`spool.pools.${marketCoinName}.rewardPoolId`
|
|
443
458
|
);
|
|
@@ -449,34 +464,15 @@ export const getStakeRewardPool = async (
|
|
|
449
464
|
showType: true,
|
|
450
465
|
},
|
|
451
466
|
});
|
|
452
|
-
|
|
453
|
-
.client()
|
|
454
|
-
.getDynamicFieldObject({
|
|
455
|
-
parentId: poolId,
|
|
456
|
-
name: {
|
|
457
|
-
type: `${spoolPkgId}::rewards_pool::RewardsPoolFeeKey`,
|
|
458
|
-
value: { dummy_field: false },
|
|
459
|
-
},
|
|
460
|
-
});
|
|
461
|
-
if (
|
|
462
|
-
stakeRewardPoolObjectResponse.data &&
|
|
463
|
-
stakeRewardFeeDynamicFieldsResponse.data
|
|
464
|
-
) {
|
|
467
|
+
if (stakeRewardPoolObjectResponse.data) {
|
|
465
468
|
const stakeRewardPoolObject = stakeRewardPoolObjectResponse.data;
|
|
466
|
-
const stakeRewardFeeDynamicFieldObject =
|
|
467
|
-
stakeRewardFeeDynamicFieldsResponse.data;
|
|
468
469
|
const id = stakeRewardPoolObject.objectId;
|
|
469
470
|
const type = stakeRewardPoolObject.type!;
|
|
470
471
|
if (
|
|
471
472
|
stakeRewardPoolObject.content &&
|
|
472
|
-
|
|
473
|
-
'fields' in stakeRewardPoolObject.content &&
|
|
474
|
-
'fields' in stakeRewardFeeDynamicFieldObject.content
|
|
473
|
+
'fields' in stakeRewardPoolObject.content
|
|
475
474
|
) {
|
|
476
475
|
const rewardPoolFields = stakeRewardPoolObject.content.fields as any;
|
|
477
|
-
const rewardFeeFields = (
|
|
478
|
-
stakeRewardFeeDynamicFieldObject.content.fields as any
|
|
479
|
-
).value.fields;
|
|
480
476
|
const stakePoolId = String(rewardPoolFields.spool_id);
|
|
481
477
|
const ratioNumerator = Number(rewardPoolFields.exchange_rate_numerator);
|
|
482
478
|
const ratioDenominator = Number(
|
|
@@ -484,8 +480,6 @@ export const getStakeRewardPool = async (
|
|
|
484
480
|
);
|
|
485
481
|
const rewards = Number(rewardPoolFields.rewards);
|
|
486
482
|
const claimedRewards = Number(rewardPoolFields.claimed_rewards);
|
|
487
|
-
const feeRateNumerator = Number(rewardFeeFields.fee_rate_numerator);
|
|
488
|
-
const feeRateDenominator = Number(rewardFeeFields.fee_rate_denominator);
|
|
489
483
|
|
|
490
484
|
stakeRewardPool = {
|
|
491
485
|
id,
|
|
@@ -493,8 +487,6 @@ export const getStakeRewardPool = async (
|
|
|
493
487
|
stakePoolId,
|
|
494
488
|
ratioNumerator,
|
|
495
489
|
ratioDenominator,
|
|
496
|
-
feeRateNumerator,
|
|
497
|
-
feeRateDenominator,
|
|
498
490
|
rewards,
|
|
499
491
|
claimedRewards,
|
|
500
492
|
};
|
|
@@ -83,8 +83,6 @@ export type OriginBorrowIncentiveRewardPoolData = {
|
|
|
83
83
|
claimed_rewards: string;
|
|
84
84
|
exchange_rate_denominator: string;
|
|
85
85
|
exchange_rate_numerator: string;
|
|
86
|
-
rewards_fee_rate_denominator: string;
|
|
87
|
-
rewards_fee_rate_numerator: string;
|
|
88
86
|
remaining_reward: string;
|
|
89
87
|
reward_type: {
|
|
90
88
|
name: string;
|
|
@@ -96,8 +94,6 @@ export type ParsedBorrowIncentiveRewardPoolData = {
|
|
|
96
94
|
claimedRewards: number;
|
|
97
95
|
exchangeRateDenominator: number;
|
|
98
96
|
exchangeRateNumerator: number;
|
|
99
|
-
rewardsFeeRateDenominator: number;
|
|
100
|
-
rewardsFeeRateNumerator: number;
|
|
101
97
|
remainingRewards: number;
|
|
102
98
|
};
|
|
103
99
|
|
|
@@ -113,7 +109,6 @@ export type CalculatedBorrowIncentiveRewardPoolData = {
|
|
|
113
109
|
claimedRewardCoin: number;
|
|
114
110
|
claimedRewardValue: number;
|
|
115
111
|
rewardPerSec: number;
|
|
116
|
-
rewardFee: number;
|
|
117
112
|
};
|
|
118
113
|
|
|
119
114
|
export type BorrowIncentiveAccounts = OptionalKeys<
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { MarketPool } from './core';
|
|
2
|
+
import type { Spool } from './spool';
|
|
2
3
|
import type { SupportPoolCoins, SupportCollateralCoins } from '../constant';
|
|
3
4
|
|
|
4
5
|
type OptionalKeys<T> = {
|
|
@@ -19,7 +20,9 @@ export type Lending = Required<
|
|
|
19
20
|
| 'marketCoinType'
|
|
20
21
|
| 'coinDecimal'
|
|
21
22
|
| 'coinPrice'
|
|
22
|
-
|
|
23
|
+
| 'conversionRate'
|
|
24
|
+
> &
|
|
25
|
+
Pick<Spool, 'marketCoinPrice'>
|
|
23
26
|
> & {
|
|
24
27
|
supplyApr: number;
|
|
25
28
|
supplyApy: number;
|
package/src/types/query/spool.ts
CHANGED
|
@@ -73,8 +73,6 @@ export type OriginSpoolRewardPoolData = {
|
|
|
73
73
|
claimed_rewards: string;
|
|
74
74
|
exchange_rate_denominator: string;
|
|
75
75
|
exchange_rate_numerator: string;
|
|
76
|
-
fee_rate_denominator: string;
|
|
77
|
-
fee_rate_numerator: string;
|
|
78
76
|
rewards: string;
|
|
79
77
|
spool_id: string;
|
|
80
78
|
};
|
|
@@ -83,8 +81,6 @@ export type ParsedSpoolRewardPoolData = {
|
|
|
83
81
|
claimedRewards: number;
|
|
84
82
|
exchangeRateDenominator: number;
|
|
85
83
|
exchangeRateNumerator: number;
|
|
86
|
-
feeRateDenominator: number;
|
|
87
|
-
feeRateNumerator: number;
|
|
88
84
|
rewards: number;
|
|
89
85
|
spoolId: string;
|
|
90
86
|
};
|
|
@@ -101,7 +97,6 @@ export type CalculatedSpoolRewardPoolData = {
|
|
|
101
97
|
claimedRewardCoin: number;
|
|
102
98
|
claimedRewardValue: number;
|
|
103
99
|
rewardPerSec: number;
|
|
104
|
-
rewardFee: number;
|
|
105
100
|
};
|
|
106
101
|
|
|
107
102
|
export type StakePools = OptionalKeys<
|
|
@@ -144,8 +139,6 @@ export interface StakeRewardPool {
|
|
|
144
139
|
stakePoolId: string;
|
|
145
140
|
ratioDenominator: number;
|
|
146
141
|
ratioNumerator: number;
|
|
147
|
-
feeRateDenominator: number;
|
|
148
|
-
feeRateNumerator: number;
|
|
149
142
|
rewards: number;
|
|
150
143
|
claimedRewards: number;
|
|
151
144
|
}
|
package/src/utils/query.ts
CHANGED
|
@@ -320,8 +320,6 @@ export const parseOriginSpoolRewardPoolData = (
|
|
|
320
320
|
exchangeRateNumerator: Number(
|
|
321
321
|
originSpoolRewardPoolData.exchange_rate_numerator
|
|
322
322
|
),
|
|
323
|
-
feeRateDenominator: Number(originSpoolRewardPoolData.fee_rate_denominator),
|
|
324
|
-
feeRateNumerator: Number(originSpoolRewardPoolData.fee_rate_numerator),
|
|
325
323
|
rewards: Number(originSpoolRewardPoolData.rewards),
|
|
326
324
|
spoolId: String(originSpoolRewardPoolData.spool_id),
|
|
327
325
|
};
|
|
@@ -366,9 +364,6 @@ export const calculateSpoolRewardPoolData = (
|
|
|
366
364
|
.isFinite()
|
|
367
365
|
? rewardValueForYear.dividedBy(calculatedSpoolData.stakedValue).toNumber()
|
|
368
366
|
: Infinity;
|
|
369
|
-
const rewardFeeRate = BigNumber(parsedSpoolRewardPoolData.feeRateNumerator)
|
|
370
|
-
.dividedBy(parsedSpoolRewardPoolData.feeRateDenominator)
|
|
371
|
-
.toNumber();
|
|
372
367
|
|
|
373
368
|
return {
|
|
374
369
|
rewardApr: rewardRate,
|
|
@@ -382,7 +377,6 @@ export const calculateSpoolRewardPoolData = (
|
|
|
382
377
|
claimedRewardCoin: claimedRewardCoin.toNumber(),
|
|
383
378
|
claimedRewardValue: claimedRewardValue.toNumber(),
|
|
384
379
|
rewardPerSec: rewardPerSec.toNumber(),
|
|
385
|
-
rewardFee: rewardFeeRate,
|
|
386
380
|
};
|
|
387
381
|
};
|
|
388
382
|
|
|
@@ -498,12 +492,6 @@ export const parseOriginBorrowIncentiveRewardPoolData = (
|
|
|
498
492
|
exchangeRateDenominator: Number(
|
|
499
493
|
originBorrowIncentiveRewardPoolData.exchange_rate_denominator
|
|
500
494
|
),
|
|
501
|
-
rewardsFeeRateNumerator: Number(
|
|
502
|
-
originBorrowIncentiveRewardPoolData.rewards_fee_rate_numerator
|
|
503
|
-
),
|
|
504
|
-
rewardsFeeRateDenominator: Number(
|
|
505
|
-
originBorrowIncentiveRewardPoolData.rewards_fee_rate_denominator
|
|
506
|
-
),
|
|
507
495
|
remainingRewards: Number(
|
|
508
496
|
originBorrowIncentiveRewardPoolData.remaining_reward
|
|
509
497
|
),
|
|
@@ -555,11 +543,6 @@ export const calculateBorrowIncentiveRewardPoolData = (
|
|
|
555
543
|
.dividedBy(calculatedBorrowIncentivePoolData.stakedValue)
|
|
556
544
|
.toNumber()
|
|
557
545
|
: Infinity;
|
|
558
|
-
const rewardFeeRate = BigNumber(
|
|
559
|
-
parsedBorrowIncentiveRewardPoolData.rewardsFeeRateNumerator
|
|
560
|
-
)
|
|
561
|
-
.dividedBy(parsedBorrowIncentiveRewardPoolData.rewardsFeeRateDenominator)
|
|
562
|
-
.toNumber();
|
|
563
546
|
|
|
564
547
|
return {
|
|
565
548
|
rewardApr: rewardRate,
|
|
@@ -573,7 +556,6 @@ export const calculateBorrowIncentiveRewardPoolData = (
|
|
|
573
556
|
claimedRewardCoin: claimedRewardCoin.toNumber(),
|
|
574
557
|
claimedRewardValue: claimedRewardValue.toNumber(),
|
|
575
558
|
rewardPerSec: rewardPerSec.toNumber(),
|
|
576
|
-
rewardFee: rewardFeeRate,
|
|
577
559
|
};
|
|
578
560
|
};
|
|
579
561
|
|