@scallop-io/sui-scallop-sdk 0.44.4 → 0.44.5
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 -0
- package/dist/index.js +109 -37
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +108 -37
- package/dist/index.mjs.map +1 -1
- package/dist/types/address.d.ts +3 -0
- package/dist/types/query/borrowIncentive.d.ts +6 -1
- package/dist/types/query/core.d.ts +13 -1
- package/dist/types/query/spool.d.ts +9 -2
- package/package.json +1 -1
- package/src/constants/common.ts +3 -0
- package/src/models/scallopAddress.ts +3 -0
- package/src/models/scallopUtils.ts +3 -1
- package/src/queries/coreQuery.ts +36 -2
- package/src/queries/spoolQuery.ts +76 -29
- package/src/types/address.ts +3 -0
- package/src/types/query/borrowIncentive.ts +6 -1
- package/src/types/query/core.ts +11 -0
- package/src/types/query/spool.ts +9 -2
- package/src/utils/query.ts +22 -3
package/dist/index.mjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var API_BASE_URL = "https://sui.api.scallop.io";
|
|
3
3
|
var ADDRESSES_ID = "6462a088a7ace142bb6d7e9b";
|
|
4
4
|
var PROTOCOL_OBJECT_ID = "0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf";
|
|
5
|
+
var BORROW_FEE_PROTOCOL_ID = "0xc38f849e81cfe46d4e4320f508ea7dda42934a329d5a6571bb4c3cb6ea63f5da";
|
|
5
6
|
var SUPPORT_POOLS = [
|
|
6
7
|
"eth",
|
|
7
8
|
"btc",
|
|
@@ -147,6 +148,7 @@ var EMPTY_ADDRESSES = {
|
|
|
147
148
|
core: {
|
|
148
149
|
version: "",
|
|
149
150
|
versionCap: "",
|
|
151
|
+
object: "",
|
|
150
152
|
market: "",
|
|
151
153
|
adminCap: "",
|
|
152
154
|
coinDecimalsRegistry: "",
|
|
@@ -324,6 +326,7 @@ var EMPTY_ADDRESSES = {
|
|
|
324
326
|
spool: {
|
|
325
327
|
id: "",
|
|
326
328
|
adminCap: "",
|
|
329
|
+
object: "",
|
|
327
330
|
pools: {
|
|
328
331
|
ssui: {
|
|
329
332
|
id: "",
|
|
@@ -338,6 +341,7 @@ var EMPTY_ADDRESSES = {
|
|
|
338
341
|
borrowIncentive: {
|
|
339
342
|
id: "",
|
|
340
343
|
adminCap: "",
|
|
344
|
+
object: "",
|
|
341
345
|
query: "",
|
|
342
346
|
incentivePools: "",
|
|
343
347
|
incentiveAccounts: ""
|
|
@@ -687,6 +691,7 @@ var parseOriginMarketPoolData = (originMarketPoolData) => {
|
|
|
687
691
|
reserveAmount: Number(originMarketPoolData.reserve),
|
|
688
692
|
reserveFactor: Number(originMarketPoolData.reserveFactor.value) / 2 ** 32,
|
|
689
693
|
borrowWeight: Number(originMarketPoolData.borrowWeight.value) / 2 ** 32,
|
|
694
|
+
borrowFee: Number(originMarketPoolData.borrowFeeRate.value) / 2 ** 32,
|
|
690
695
|
// Parse origin data required for additional display.
|
|
691
696
|
baseBorrowRate: Number(originMarketPoolData.baseBorrowRatePerSec.value) / 2 ** 32,
|
|
692
697
|
borrowRateOnHighKink: Number(originMarketPoolData.borrowRateOnHighKink.value) / 2 ** 32,
|
|
@@ -857,12 +862,14 @@ var calculateSpoolData = (parsedSpoolData, stakeMarketCoinPrice, stakeMarketCoin
|
|
|
857
862
|
var parseOriginSpoolRewardPoolData = (originSpoolRewardPoolData) => {
|
|
858
863
|
return {
|
|
859
864
|
claimedRewards: Number(originSpoolRewardPoolData.claimed_rewards),
|
|
860
|
-
exchangeRateNumerator: Number(
|
|
861
|
-
originSpoolRewardPoolData.exchange_rate_numerator
|
|
862
|
-
),
|
|
863
865
|
exchangeRateDenominator: Number(
|
|
864
866
|
originSpoolRewardPoolData.exchange_rate_denominator
|
|
865
867
|
),
|
|
868
|
+
exchangeRateNumerator: Number(
|
|
869
|
+
originSpoolRewardPoolData.exchange_rate_numerator
|
|
870
|
+
),
|
|
871
|
+
feeRateDenominator: Number(originSpoolRewardPoolData.fee_rate_denominator),
|
|
872
|
+
feeRateNumerator: Number(originSpoolRewardPoolData.fee_rate_numerator),
|
|
866
873
|
rewards: Number(originSpoolRewardPoolData.rewards),
|
|
867
874
|
spoolId: String(originSpoolRewardPoolData.spool_id)
|
|
868
875
|
};
|
|
@@ -887,6 +894,7 @@ var calculateSpoolRewardPoolData = (parsedSpoolData, parsedSpoolRewardPoolData,
|
|
|
887
894
|
const claimedRewardValue = claimedRewardCoin.multipliedBy(rewardCoinPrice);
|
|
888
895
|
const rewardValueForYear = BigNumber(rewardPerSec).shiftedBy(-1 * rewardCoinDecimal).multipliedBy(rateYearFactor).multipliedBy(rewardCoinPrice);
|
|
889
896
|
const rewardRate = rewardValueForYear.dividedBy(calculatedSpoolData.stakedValue).isFinite() ? rewardValueForYear.dividedBy(calculatedSpoolData.stakedValue).toNumber() : Infinity;
|
|
897
|
+
const rewardFeeRate = BigNumber(parsedSpoolRewardPoolData.feeRateNumerator).dividedBy(parsedSpoolRewardPoolData.feeRateDenominator).toNumber();
|
|
890
898
|
return {
|
|
891
899
|
rewardApr: rewardRate,
|
|
892
900
|
totalRewardAmount: totalRewardAmount.toNumber(),
|
|
@@ -898,7 +906,8 @@ var calculateSpoolRewardPoolData = (parsedSpoolData, parsedSpoolRewardPoolData,
|
|
|
898
906
|
claimedRewardAmount: claimedRewardAmount.toNumber(),
|
|
899
907
|
claimedRewardCoin: claimedRewardCoin.toNumber(),
|
|
900
908
|
claimedRewardValue: claimedRewardValue.toNumber(),
|
|
901
|
-
rewardPerSec: rewardPerSec.toNumber()
|
|
909
|
+
rewardPerSec: rewardPerSec.toNumber(),
|
|
910
|
+
rewardFee: rewardFeeRate
|
|
902
911
|
};
|
|
903
912
|
};
|
|
904
913
|
var parseOriginBorrowIncentivePoolData = (originBorrowIncentivePoolData) => {
|
|
@@ -973,6 +982,12 @@ var parseOriginBorrowIncentiveRewardPoolData = (originBorrowIncentiveRewardPoolD
|
|
|
973
982
|
exchangeRateDenominator: Number(
|
|
974
983
|
originBorrowIncentiveRewardPoolData.exchange_rate_denominator
|
|
975
984
|
),
|
|
985
|
+
rewardsFeeRateNumerator: Number(
|
|
986
|
+
originBorrowIncentiveRewardPoolData.rewards_fee_rate_numerator
|
|
987
|
+
),
|
|
988
|
+
rewardsFeeRateDenominator: Number(
|
|
989
|
+
originBorrowIncentiveRewardPoolData.rewards_fee_rate_denominator
|
|
990
|
+
),
|
|
976
991
|
remainingRewards: Number(
|
|
977
992
|
originBorrowIncentiveRewardPoolData.remaining_reward
|
|
978
993
|
)
|
|
@@ -1002,6 +1017,9 @@ var calculateBorrowIncentiveRewardPoolData = (parsedBorrowIncentivePoolData, par
|
|
|
1002
1017
|
const claimedRewardValue = claimedRewardCoin.multipliedBy(rewardCoinPrice);
|
|
1003
1018
|
const rewardValueForYear = BigNumber(rewardPerSec).shiftedBy(-1 * rewardCoinDecimal).multipliedBy(rateYearFactor).multipliedBy(rewardCoinPrice);
|
|
1004
1019
|
const rewardRate = rewardValueForYear.dividedBy(calculatedBorrowIncentivePoolData.stakedValue).isFinite() ? rewardValueForYear.dividedBy(calculatedBorrowIncentivePoolData.stakedValue).toNumber() : Infinity;
|
|
1020
|
+
const rewardFeeRate = BigNumber(
|
|
1021
|
+
parsedBorrowIncentiveRewardPoolData.rewardsFeeRateNumerator
|
|
1022
|
+
).dividedBy(parsedBorrowIncentiveRewardPoolData.rewardsFeeRateDenominator).toNumber();
|
|
1005
1023
|
return {
|
|
1006
1024
|
rewardApr: rewardRate,
|
|
1007
1025
|
totalRewardAmount: totalRewardAmount.toNumber(),
|
|
@@ -1013,7 +1031,8 @@ var calculateBorrowIncentiveRewardPoolData = (parsedBorrowIncentivePoolData, par
|
|
|
1013
1031
|
claimedRewardAmount: claimedRewardAmount.toNumber(),
|
|
1014
1032
|
claimedRewardCoin: claimedRewardCoin.toNumber(),
|
|
1015
1033
|
claimedRewardValue: claimedRewardValue.toNumber(),
|
|
1016
|
-
rewardPerSec: rewardPerSec.toNumber()
|
|
1034
|
+
rewardPerSec: rewardPerSec.toNumber(),
|
|
1035
|
+
rewardFee: rewardFeeRate
|
|
1017
1036
|
};
|
|
1018
1037
|
};
|
|
1019
1038
|
var parseOriginBorrowIncentiveAccountData = (originBorrowIncentiveAccountData) => {
|
|
@@ -1108,6 +1127,7 @@ var queryMarket = async (query) => {
|
|
|
1108
1127
|
reserve: pool.reserve,
|
|
1109
1128
|
reserveFactor: pool.reserveFactor,
|
|
1110
1129
|
borrowWeight: pool.borrowWeight,
|
|
1130
|
+
borrowFeeRate: pool.borrowFeeRate,
|
|
1111
1131
|
baseBorrowRatePerSec: pool.baseBorrowRatePerSec,
|
|
1112
1132
|
borrowRateOnHighKink: pool.borrowRateOnHighKink,
|
|
1113
1133
|
borrowRateOnMidKink: pool.borrowRateOnMidKink,
|
|
@@ -1131,6 +1151,7 @@ var queryMarket = async (query) => {
|
|
|
1131
1151
|
midKink: parsedMarketPoolData.midKink,
|
|
1132
1152
|
reserveFactor: parsedMarketPoolData.reserveFactor,
|
|
1133
1153
|
borrowWeight: parsedMarketPoolData.borrowWeight,
|
|
1154
|
+
borrowFee: parsedMarketPoolData.borrowFee,
|
|
1134
1155
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
1135
1156
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
1136
1157
|
...calculatedMarketPoolData
|
|
@@ -1215,6 +1236,7 @@ var getMarketPool = async (query, poolCoinName, marketObject, coinPrice) => {
|
|
|
1215
1236
|
let balanceSheet;
|
|
1216
1237
|
let borrowIndex;
|
|
1217
1238
|
let interestModel;
|
|
1239
|
+
let borrowFeeRate;
|
|
1218
1240
|
if (marketObject) {
|
|
1219
1241
|
if (marketObject.content && "fields" in marketObject.content) {
|
|
1220
1242
|
const fields = marketObject.content.fields;
|
|
@@ -1264,9 +1286,25 @@ var getMarketPool = async (query, poolCoinName, marketObject, coinPrice) => {
|
|
|
1264
1286
|
const dynamicFields = interestModelDynamicFieldObject.content.fields;
|
|
1265
1287
|
interestModel = dynamicFields.value.fields;
|
|
1266
1288
|
}
|
|
1289
|
+
const borrowFeeDynamicFieldObjectResponse = await query.suiKit.client().getDynamicFieldObject({
|
|
1290
|
+
parentId: marketId,
|
|
1291
|
+
name: {
|
|
1292
|
+
type: `${BORROW_FEE_PROTOCOL_ID}::market_dynamic_keys::BorrowFeeKey`,
|
|
1293
|
+
value: {
|
|
1294
|
+
type: {
|
|
1295
|
+
name: coinType.substring(2)
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1298
|
+
}
|
|
1299
|
+
});
|
|
1300
|
+
const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse.data;
|
|
1301
|
+
if (borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content) {
|
|
1302
|
+
const dynamicFields = borrowFeeDynamicFieldObject.content.fields;
|
|
1303
|
+
borrowFeeRate = dynamicFields.value.fields;
|
|
1304
|
+
}
|
|
1267
1305
|
}
|
|
1268
1306
|
}
|
|
1269
|
-
if (balanceSheet && borrowIndex && interestModel) {
|
|
1307
|
+
if (balanceSheet && borrowIndex && interestModel && borrowFeeRate) {
|
|
1270
1308
|
const parsedMarketPoolData = parseOriginMarketPoolData({
|
|
1271
1309
|
type: interestModel.type.fields,
|
|
1272
1310
|
maxBorrowRate: interestModel.max_borrow_rate.fields,
|
|
@@ -1280,6 +1318,7 @@ var getMarketPool = async (query, poolCoinName, marketObject, coinPrice) => {
|
|
|
1280
1318
|
reserve: balanceSheet.revenue,
|
|
1281
1319
|
reserveFactor: interestModel.revenue_factor.fields,
|
|
1282
1320
|
borrowWeight: interestModel.borrow_weight.fields,
|
|
1321
|
+
borrowFeeRate,
|
|
1283
1322
|
baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
|
|
1284
1323
|
borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
|
|
1285
1324
|
borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
|
|
@@ -1304,6 +1343,7 @@ var getMarketPool = async (query, poolCoinName, marketObject, coinPrice) => {
|
|
|
1304
1343
|
midKink: parsedMarketPoolData.midKink,
|
|
1305
1344
|
reserveFactor: parsedMarketPoolData.reserveFactor,
|
|
1306
1345
|
borrowWeight: parsedMarketPoolData.borrowWeight,
|
|
1346
|
+
borrowFee: parsedMarketPoolData.borrowFee,
|
|
1307
1347
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
1308
1348
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
1309
1349
|
...calculatedMarketPoolData
|
|
@@ -1418,6 +1458,7 @@ var getMarketCollateral = async (query, collateralCoinName, marketObject, coinPr
|
|
|
1418
1458
|
};
|
|
1419
1459
|
var getObligations = async (query, ownerAddress) => {
|
|
1420
1460
|
const owner = ownerAddress || query.suiKit.currentAddress();
|
|
1461
|
+
const protocolObjectId = query.address.get("core.object") || PROTOCOL_OBJECT_ID;
|
|
1421
1462
|
const keyObjectsResponse = [];
|
|
1422
1463
|
let hasNextPage = false;
|
|
1423
1464
|
let nextCursor = null;
|
|
@@ -1425,7 +1466,7 @@ var getObligations = async (query, ownerAddress) => {
|
|
|
1425
1466
|
const paginatedKeyObjectsResponse = await query.suiKit.client().getOwnedObjects({
|
|
1426
1467
|
owner,
|
|
1427
1468
|
filter: {
|
|
1428
|
-
StructType: `${
|
|
1469
|
+
StructType: `${protocolObjectId}::obligation::ObligationKey`
|
|
1429
1470
|
},
|
|
1430
1471
|
cursor: nextCursor
|
|
1431
1472
|
});
|
|
@@ -1662,6 +1703,7 @@ var getSpools = async (query, stakeMarketCoinNames) => {
|
|
|
1662
1703
|
var getSpool = async (query, marketCoinName, marketPool) => {
|
|
1663
1704
|
const coinName = query.utils.parseCoinName(marketCoinName);
|
|
1664
1705
|
marketPool = marketPool || await query.getMarketPool(coinName);
|
|
1706
|
+
const spoolPkgId = query.address.get(`spool.id`);
|
|
1665
1707
|
const poolId = query.address.get(`spool.pools.${marketCoinName}.id`);
|
|
1666
1708
|
const rewardPoolId = query.address.get(
|
|
1667
1709
|
`spool.pools.${marketCoinName}.rewardPoolId`
|
|
@@ -1673,6 +1715,13 @@ var getSpool = async (query, marketCoinName, marketPool) => {
|
|
|
1673
1715
|
showContent: true
|
|
1674
1716
|
}
|
|
1675
1717
|
});
|
|
1718
|
+
const spoolRewardFeeDynamicFieldsResponse = await query.suiKit.client().getDynamicFieldObject({
|
|
1719
|
+
parentId: rewardPoolId,
|
|
1720
|
+
name: {
|
|
1721
|
+
type: `${spoolPkgId}::rewards_pool::RewardsPoolFeeKey`,
|
|
1722
|
+
value: { dummy_field: false }
|
|
1723
|
+
}
|
|
1724
|
+
});
|
|
1676
1725
|
if (marketPool && spoolObjectResponse[0].data && spoolObjectResponse[1].data) {
|
|
1677
1726
|
const rewardCoinName = query.utils.getSpoolRewardCoinName(marketCoinName);
|
|
1678
1727
|
const coinPrices = await query.utils.getCoinPrices([
|
|
@@ -1681,19 +1730,20 @@ var getSpool = async (query, marketCoinName, marketPool) => {
|
|
|
1681
1730
|
]);
|
|
1682
1731
|
const spoolObject = spoolObjectResponse[0].data;
|
|
1683
1732
|
const rewardPoolObject = spoolObjectResponse[1].data;
|
|
1733
|
+
const rewardFeeObject = spoolRewardFeeDynamicFieldsResponse.data;
|
|
1684
1734
|
if (spoolObject.content && "fields" in spoolObject.content) {
|
|
1685
|
-
const
|
|
1735
|
+
const spoolFields = spoolObject.content.fields;
|
|
1686
1736
|
const parsedSpoolData = parseOriginSpoolData({
|
|
1687
|
-
stakeType:
|
|
1688
|
-
maxDistributedPoint:
|
|
1689
|
-
distributedPoint:
|
|
1690
|
-
distributedPointPerPeriod:
|
|
1691
|
-
pointDistributionTime:
|
|
1692
|
-
maxStake:
|
|
1693
|
-
stakes:
|
|
1694
|
-
index:
|
|
1695
|
-
createdAt:
|
|
1696
|
-
lastUpdate:
|
|
1737
|
+
stakeType: spoolFields.stake_type,
|
|
1738
|
+
maxDistributedPoint: spoolFields.max_distributed_point,
|
|
1739
|
+
distributedPoint: spoolFields.distributed_point,
|
|
1740
|
+
distributedPointPerPeriod: spoolFields.distributed_point_per_period,
|
|
1741
|
+
pointDistributionTime: spoolFields.point_distribution_time,
|
|
1742
|
+
maxStake: spoolFields.max_stakes,
|
|
1743
|
+
stakes: spoolFields.stakes,
|
|
1744
|
+
index: spoolFields.index,
|
|
1745
|
+
createdAt: spoolFields.created_at,
|
|
1746
|
+
lastUpdate: spoolFields.last_update
|
|
1697
1747
|
});
|
|
1698
1748
|
const marketCoinPrice = (coinPrices?.[coinName] ?? 0) * marketPool.conversionRate;
|
|
1699
1749
|
const marketCoinDecimal = query.utils.getCoinDecimal(marketCoinName);
|
|
@@ -1702,14 +1752,17 @@ var getSpool = async (query, marketCoinName, marketPool) => {
|
|
|
1702
1752
|
marketCoinPrice,
|
|
1703
1753
|
marketCoinDecimal
|
|
1704
1754
|
);
|
|
1705
|
-
if (rewardPoolObject.content && "fields" in rewardPoolObject.content) {
|
|
1706
|
-
const
|
|
1755
|
+
if (rewardPoolObject.content && rewardFeeObject?.content && "fields" in rewardPoolObject.content && "fields" in rewardFeeObject.content) {
|
|
1756
|
+
const rewardPoolFields = rewardPoolObject.content.fields;
|
|
1757
|
+
const rewardFeeFields = rewardFeeObject.content.fields.value.fields;
|
|
1707
1758
|
const parsedSpoolRewardPoolData = parseOriginSpoolRewardPoolData({
|
|
1708
|
-
claimed_rewards:
|
|
1709
|
-
exchange_rate_numerator:
|
|
1710
|
-
exchange_rate_denominator:
|
|
1711
|
-
|
|
1712
|
-
|
|
1759
|
+
claimed_rewards: rewardPoolFields.claimed_rewards,
|
|
1760
|
+
exchange_rate_numerator: rewardPoolFields.exchange_rate_numerator,
|
|
1761
|
+
exchange_rate_denominator: rewardPoolFields.exchange_rate_denominator,
|
|
1762
|
+
fee_rate_numerator: rewardFeeFields.fee_rate_numerator,
|
|
1763
|
+
fee_rate_denominator: rewardFeeFields.fee_rate_denominator,
|
|
1764
|
+
rewards: rewardPoolFields.rewards,
|
|
1765
|
+
spool_id: rewardPoolFields.spool_id
|
|
1713
1766
|
});
|
|
1714
1767
|
const rewardCoinPrice = coinPrices?.[rewardCoinName] ?? 0;
|
|
1715
1768
|
const rewardCoinDecimal = query.utils.getCoinDecimal(rewardCoinName);
|
|
@@ -1746,8 +1799,8 @@ var getSpool = async (query, marketCoinName, marketPool) => {
|
|
|
1746
1799
|
};
|
|
1747
1800
|
var getStakeAccounts = async (query, ownerAddress) => {
|
|
1748
1801
|
const owner = ownerAddress || query.suiKit.currentAddress();
|
|
1749
|
-
const
|
|
1750
|
-
const stakeAccountType = `${
|
|
1802
|
+
const spoolObjectId = query.address.get("spool.object");
|
|
1803
|
+
const stakeAccountType = `${spoolObjectId}::spool_account::SpoolAccount`;
|
|
1751
1804
|
const stakeObjectsResponse = [];
|
|
1752
1805
|
let hasNextPage = false;
|
|
1753
1806
|
let nextCursor = null;
|
|
@@ -1776,7 +1829,7 @@ var getStakeAccounts = async (query, ownerAddress) => {
|
|
|
1776
1829
|
(types, stakeMarketCoinName) => {
|
|
1777
1830
|
const stakeCoinName = query.utils.parseCoinName(stakeMarketCoinName);
|
|
1778
1831
|
const marketCoinType = query.utils.parseMarketCoinType(stakeCoinName);
|
|
1779
|
-
types[stakeMarketCoinName] = `${
|
|
1832
|
+
types[stakeMarketCoinName] = `${spoolObjectId}::spool_account::SpoolAccount<${marketCoinType}>`;
|
|
1780
1833
|
return types;
|
|
1781
1834
|
},
|
|
1782
1835
|
{}
|
|
@@ -1877,6 +1930,7 @@ var getStakePool = async (query, marketCoinName) => {
|
|
|
1877
1930
|
return stakePool;
|
|
1878
1931
|
};
|
|
1879
1932
|
var getStakeRewardPool = async (query, marketCoinName) => {
|
|
1933
|
+
const spoolPkgId = query.address.get("spool.id");
|
|
1880
1934
|
const poolId = query.address.get(
|
|
1881
1935
|
`spool.pools.${marketCoinName}.rewardPoolId`
|
|
1882
1936
|
);
|
|
@@ -1888,23 +1942,38 @@ var getStakeRewardPool = async (query, marketCoinName) => {
|
|
|
1888
1942
|
showType: true
|
|
1889
1943
|
}
|
|
1890
1944
|
});
|
|
1891
|
-
|
|
1945
|
+
const stakeRewardFeeDynamicFieldsResponse = await query.suiKit.client().getDynamicFieldObject({
|
|
1946
|
+
parentId: poolId,
|
|
1947
|
+
name: {
|
|
1948
|
+
type: `${spoolPkgId}::rewards_pool::RewardsPoolFeeKey`,
|
|
1949
|
+
value: { dummy_field: false }
|
|
1950
|
+
}
|
|
1951
|
+
});
|
|
1952
|
+
if (stakeRewardPoolObjectResponse.data && stakeRewardFeeDynamicFieldsResponse.data) {
|
|
1892
1953
|
const stakeRewardPoolObject = stakeRewardPoolObjectResponse.data;
|
|
1954
|
+
const stakeRewardFeeDynamicFieldObject = stakeRewardFeeDynamicFieldsResponse.data;
|
|
1893
1955
|
const id = stakeRewardPoolObject.objectId;
|
|
1894
1956
|
const type = stakeRewardPoolObject.type;
|
|
1895
|
-
if (stakeRewardPoolObject.content && "fields" in stakeRewardPoolObject.content) {
|
|
1896
|
-
const
|
|
1897
|
-
const
|
|
1898
|
-
const
|
|
1899
|
-
const
|
|
1900
|
-
const
|
|
1901
|
-
|
|
1957
|
+
if (stakeRewardPoolObject.content && stakeRewardFeeDynamicFieldObject.content && "fields" in stakeRewardPoolObject.content && "fields" in stakeRewardFeeDynamicFieldObject.content) {
|
|
1958
|
+
const rewardPoolFields = stakeRewardPoolObject.content.fields;
|
|
1959
|
+
const rewardFeeFields = stakeRewardFeeDynamicFieldObject.content.fields.value.fields;
|
|
1960
|
+
const stakePoolId = String(rewardPoolFields.spool_id);
|
|
1961
|
+
const ratioNumerator = Number(rewardPoolFields.exchange_rate_numerator);
|
|
1962
|
+
const ratioDenominator = Number(
|
|
1963
|
+
rewardPoolFields.exchange_rate_denominator
|
|
1964
|
+
);
|
|
1965
|
+
const rewards = Number(rewardPoolFields.rewards);
|
|
1966
|
+
const claimedRewards = Number(rewardPoolFields.claimed_rewards);
|
|
1967
|
+
const feeRateNumerator = Number(rewardFeeFields.fee_rate_numerator);
|
|
1968
|
+
const feeRateDenominator = Number(rewardFeeFields.fee_rate_denominator);
|
|
1902
1969
|
stakeRewardPool = {
|
|
1903
1970
|
id,
|
|
1904
1971
|
type: normalizeStructTag3(type),
|
|
1905
1972
|
stakePoolId,
|
|
1906
1973
|
ratioNumerator,
|
|
1907
1974
|
ratioDenominator,
|
|
1975
|
+
feeRateNumerator,
|
|
1976
|
+
feeRateDenominator,
|
|
1908
1977
|
rewards,
|
|
1909
1978
|
claimedRewards
|
|
1910
1979
|
};
|
|
@@ -2902,8 +2971,9 @@ var ScallopUtils = class {
|
|
|
2902
2971
|
* @return Market coin type.
|
|
2903
2972
|
*/
|
|
2904
2973
|
parseMarketCoinType(coinName) {
|
|
2974
|
+
const protocolObjectId = this._address.get("core.object") || PROTOCOL_OBJECT_ID;
|
|
2905
2975
|
const coinType = this.parseCoinType(coinName);
|
|
2906
|
-
return `${
|
|
2976
|
+
return `${protocolObjectId}::reserve::MarketCoin<${coinType}>`;
|
|
2907
2977
|
}
|
|
2908
2978
|
parseCoinNameFromType(coinType) {
|
|
2909
2979
|
coinType = normalizeStructTag5(coinType);
|
|
@@ -4600,6 +4670,7 @@ var Scallop = class {
|
|
|
4600
4670
|
export {
|
|
4601
4671
|
ADDRESSES_ID,
|
|
4602
4672
|
API_BASE_URL,
|
|
4673
|
+
BORROW_FEE_PROTOCOL_ID,
|
|
4603
4674
|
PROTOCOL_OBJECT_ID,
|
|
4604
4675
|
SUPPORT_BORROW_INCENTIVE_POOLS,
|
|
4605
4676
|
SUPPORT_BORROW_INCENTIVE_REWARDS,
|