@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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const API_BASE_URL = "https://sui.api.scallop.io";
|
|
2
2
|
export declare const ADDRESSES_ID = "6462a088a7ace142bb6d7e9b";
|
|
3
3
|
export declare const PROTOCOL_OBJECT_ID = "0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf";
|
|
4
|
+
export declare const BORROW_FEE_PROTOCOL_ID = "0xc38f849e81cfe46d4e4320f508ea7dda42934a329d5a6571bb4c3cb6ea63f5da";
|
|
4
5
|
export declare const SUPPORT_POOLS: readonly ["eth", "btc", "usdc", "usdt", "sui", "apt", "sol", "cetus", "afsui", "hasui", "vsui"];
|
|
5
6
|
export declare const SUPPORT_COLLATERALS: readonly ["eth", "btc", "usdc", "usdt", "sui", "apt", "sol", "cetus", "afsui", "hasui", "vsui"];
|
|
6
7
|
export declare const SUPPORT_SPOOLS: readonly ["ssui", "susdc", "susdt"];
|
package/dist/index.js
CHANGED
|
@@ -32,6 +32,7 @@ var src_exports = {};
|
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
ADDRESSES_ID: () => ADDRESSES_ID,
|
|
34
34
|
API_BASE_URL: () => API_BASE_URL,
|
|
35
|
+
BORROW_FEE_PROTOCOL_ID: () => BORROW_FEE_PROTOCOL_ID,
|
|
35
36
|
PROTOCOL_OBJECT_ID: () => PROTOCOL_OBJECT_ID,
|
|
36
37
|
SUPPORT_BORROW_INCENTIVE_POOLS: () => SUPPORT_BORROW_INCENTIVE_POOLS,
|
|
37
38
|
SUPPORT_BORROW_INCENTIVE_REWARDS: () => SUPPORT_BORROW_INCENTIVE_REWARDS,
|
|
@@ -63,6 +64,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
63
64
|
var API_BASE_URL = "https://sui.api.scallop.io";
|
|
64
65
|
var ADDRESSES_ID = "6462a088a7ace142bb6d7e9b";
|
|
65
66
|
var PROTOCOL_OBJECT_ID = "0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf";
|
|
67
|
+
var BORROW_FEE_PROTOCOL_ID = "0xc38f849e81cfe46d4e4320f508ea7dda42934a329d5a6571bb4c3cb6ea63f5da";
|
|
66
68
|
var SUPPORT_POOLS = [
|
|
67
69
|
"eth",
|
|
68
70
|
"btc",
|
|
@@ -208,6 +210,7 @@ var EMPTY_ADDRESSES = {
|
|
|
208
210
|
core: {
|
|
209
211
|
version: "",
|
|
210
212
|
versionCap: "",
|
|
213
|
+
object: "",
|
|
211
214
|
market: "",
|
|
212
215
|
adminCap: "",
|
|
213
216
|
coinDecimalsRegistry: "",
|
|
@@ -385,6 +388,7 @@ var EMPTY_ADDRESSES = {
|
|
|
385
388
|
spool: {
|
|
386
389
|
id: "",
|
|
387
390
|
adminCap: "",
|
|
391
|
+
object: "",
|
|
388
392
|
pools: {
|
|
389
393
|
ssui: {
|
|
390
394
|
id: "",
|
|
@@ -399,6 +403,7 @@ var EMPTY_ADDRESSES = {
|
|
|
399
403
|
borrowIncentive: {
|
|
400
404
|
id: "",
|
|
401
405
|
adminCap: "",
|
|
406
|
+
object: "",
|
|
402
407
|
query: "",
|
|
403
408
|
incentivePools: "",
|
|
404
409
|
incentiveAccounts: ""
|
|
@@ -748,6 +753,7 @@ var parseOriginMarketPoolData = (originMarketPoolData) => {
|
|
|
748
753
|
reserveAmount: Number(originMarketPoolData.reserve),
|
|
749
754
|
reserveFactor: Number(originMarketPoolData.reserveFactor.value) / 2 ** 32,
|
|
750
755
|
borrowWeight: Number(originMarketPoolData.borrowWeight.value) / 2 ** 32,
|
|
756
|
+
borrowFee: Number(originMarketPoolData.borrowFeeRate.value) / 2 ** 32,
|
|
751
757
|
// Parse origin data required for additional display.
|
|
752
758
|
baseBorrowRate: Number(originMarketPoolData.baseBorrowRatePerSec.value) / 2 ** 32,
|
|
753
759
|
borrowRateOnHighKink: Number(originMarketPoolData.borrowRateOnHighKink.value) / 2 ** 32,
|
|
@@ -918,12 +924,14 @@ var calculateSpoolData = (parsedSpoolData, stakeMarketCoinPrice, stakeMarketCoin
|
|
|
918
924
|
var parseOriginSpoolRewardPoolData = (originSpoolRewardPoolData) => {
|
|
919
925
|
return {
|
|
920
926
|
claimedRewards: Number(originSpoolRewardPoolData.claimed_rewards),
|
|
921
|
-
exchangeRateNumerator: Number(
|
|
922
|
-
originSpoolRewardPoolData.exchange_rate_numerator
|
|
923
|
-
),
|
|
924
927
|
exchangeRateDenominator: Number(
|
|
925
928
|
originSpoolRewardPoolData.exchange_rate_denominator
|
|
926
929
|
),
|
|
930
|
+
exchangeRateNumerator: Number(
|
|
931
|
+
originSpoolRewardPoolData.exchange_rate_numerator
|
|
932
|
+
),
|
|
933
|
+
feeRateDenominator: Number(originSpoolRewardPoolData.fee_rate_denominator),
|
|
934
|
+
feeRateNumerator: Number(originSpoolRewardPoolData.fee_rate_numerator),
|
|
927
935
|
rewards: Number(originSpoolRewardPoolData.rewards),
|
|
928
936
|
spoolId: String(originSpoolRewardPoolData.spool_id)
|
|
929
937
|
};
|
|
@@ -948,6 +956,7 @@ var calculateSpoolRewardPoolData = (parsedSpoolData, parsedSpoolRewardPoolData,
|
|
|
948
956
|
const claimedRewardValue = claimedRewardCoin.multipliedBy(rewardCoinPrice);
|
|
949
957
|
const rewardValueForYear = (0, import_bignumber.default)(rewardPerSec).shiftedBy(-1 * rewardCoinDecimal).multipliedBy(rateYearFactor).multipliedBy(rewardCoinPrice);
|
|
950
958
|
const rewardRate = rewardValueForYear.dividedBy(calculatedSpoolData.stakedValue).isFinite() ? rewardValueForYear.dividedBy(calculatedSpoolData.stakedValue).toNumber() : Infinity;
|
|
959
|
+
const rewardFeeRate = (0, import_bignumber.default)(parsedSpoolRewardPoolData.feeRateNumerator).dividedBy(parsedSpoolRewardPoolData.feeRateDenominator).toNumber();
|
|
951
960
|
return {
|
|
952
961
|
rewardApr: rewardRate,
|
|
953
962
|
totalRewardAmount: totalRewardAmount.toNumber(),
|
|
@@ -959,7 +968,8 @@ var calculateSpoolRewardPoolData = (parsedSpoolData, parsedSpoolRewardPoolData,
|
|
|
959
968
|
claimedRewardAmount: claimedRewardAmount.toNumber(),
|
|
960
969
|
claimedRewardCoin: claimedRewardCoin.toNumber(),
|
|
961
970
|
claimedRewardValue: claimedRewardValue.toNumber(),
|
|
962
|
-
rewardPerSec: rewardPerSec.toNumber()
|
|
971
|
+
rewardPerSec: rewardPerSec.toNumber(),
|
|
972
|
+
rewardFee: rewardFeeRate
|
|
963
973
|
};
|
|
964
974
|
};
|
|
965
975
|
var parseOriginBorrowIncentivePoolData = (originBorrowIncentivePoolData) => {
|
|
@@ -1034,6 +1044,12 @@ var parseOriginBorrowIncentiveRewardPoolData = (originBorrowIncentiveRewardPoolD
|
|
|
1034
1044
|
exchangeRateDenominator: Number(
|
|
1035
1045
|
originBorrowIncentiveRewardPoolData.exchange_rate_denominator
|
|
1036
1046
|
),
|
|
1047
|
+
rewardsFeeRateNumerator: Number(
|
|
1048
|
+
originBorrowIncentiveRewardPoolData.rewards_fee_rate_numerator
|
|
1049
|
+
),
|
|
1050
|
+
rewardsFeeRateDenominator: Number(
|
|
1051
|
+
originBorrowIncentiveRewardPoolData.rewards_fee_rate_denominator
|
|
1052
|
+
),
|
|
1037
1053
|
remainingRewards: Number(
|
|
1038
1054
|
originBorrowIncentiveRewardPoolData.remaining_reward
|
|
1039
1055
|
)
|
|
@@ -1063,6 +1079,9 @@ var calculateBorrowIncentiveRewardPoolData = (parsedBorrowIncentivePoolData, par
|
|
|
1063
1079
|
const claimedRewardValue = claimedRewardCoin.multipliedBy(rewardCoinPrice);
|
|
1064
1080
|
const rewardValueForYear = (0, import_bignumber.default)(rewardPerSec).shiftedBy(-1 * rewardCoinDecimal).multipliedBy(rateYearFactor).multipliedBy(rewardCoinPrice);
|
|
1065
1081
|
const rewardRate = rewardValueForYear.dividedBy(calculatedBorrowIncentivePoolData.stakedValue).isFinite() ? rewardValueForYear.dividedBy(calculatedBorrowIncentivePoolData.stakedValue).toNumber() : Infinity;
|
|
1082
|
+
const rewardFeeRate = (0, import_bignumber.default)(
|
|
1083
|
+
parsedBorrowIncentiveRewardPoolData.rewardsFeeRateNumerator
|
|
1084
|
+
).dividedBy(parsedBorrowIncentiveRewardPoolData.rewardsFeeRateDenominator).toNumber();
|
|
1066
1085
|
return {
|
|
1067
1086
|
rewardApr: rewardRate,
|
|
1068
1087
|
totalRewardAmount: totalRewardAmount.toNumber(),
|
|
@@ -1074,7 +1093,8 @@ var calculateBorrowIncentiveRewardPoolData = (parsedBorrowIncentivePoolData, par
|
|
|
1074
1093
|
claimedRewardAmount: claimedRewardAmount.toNumber(),
|
|
1075
1094
|
claimedRewardCoin: claimedRewardCoin.toNumber(),
|
|
1076
1095
|
claimedRewardValue: claimedRewardValue.toNumber(),
|
|
1077
|
-
rewardPerSec: rewardPerSec.toNumber()
|
|
1096
|
+
rewardPerSec: rewardPerSec.toNumber(),
|
|
1097
|
+
rewardFee: rewardFeeRate
|
|
1078
1098
|
};
|
|
1079
1099
|
};
|
|
1080
1100
|
var parseOriginBorrowIncentiveAccountData = (originBorrowIncentiveAccountData) => {
|
|
@@ -1169,6 +1189,7 @@ var queryMarket = async (query) => {
|
|
|
1169
1189
|
reserve: pool.reserve,
|
|
1170
1190
|
reserveFactor: pool.reserveFactor,
|
|
1171
1191
|
borrowWeight: pool.borrowWeight,
|
|
1192
|
+
borrowFeeRate: pool.borrowFeeRate,
|
|
1172
1193
|
baseBorrowRatePerSec: pool.baseBorrowRatePerSec,
|
|
1173
1194
|
borrowRateOnHighKink: pool.borrowRateOnHighKink,
|
|
1174
1195
|
borrowRateOnMidKink: pool.borrowRateOnMidKink,
|
|
@@ -1192,6 +1213,7 @@ var queryMarket = async (query) => {
|
|
|
1192
1213
|
midKink: parsedMarketPoolData.midKink,
|
|
1193
1214
|
reserveFactor: parsedMarketPoolData.reserveFactor,
|
|
1194
1215
|
borrowWeight: parsedMarketPoolData.borrowWeight,
|
|
1216
|
+
borrowFee: parsedMarketPoolData.borrowFee,
|
|
1195
1217
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
1196
1218
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
1197
1219
|
...calculatedMarketPoolData
|
|
@@ -1276,6 +1298,7 @@ var getMarketPool = async (query, poolCoinName, marketObject, coinPrice) => {
|
|
|
1276
1298
|
let balanceSheet;
|
|
1277
1299
|
let borrowIndex;
|
|
1278
1300
|
let interestModel;
|
|
1301
|
+
let borrowFeeRate;
|
|
1279
1302
|
if (marketObject) {
|
|
1280
1303
|
if (marketObject.content && "fields" in marketObject.content) {
|
|
1281
1304
|
const fields = marketObject.content.fields;
|
|
@@ -1325,9 +1348,25 @@ var getMarketPool = async (query, poolCoinName, marketObject, coinPrice) => {
|
|
|
1325
1348
|
const dynamicFields = interestModelDynamicFieldObject.content.fields;
|
|
1326
1349
|
interestModel = dynamicFields.value.fields;
|
|
1327
1350
|
}
|
|
1351
|
+
const borrowFeeDynamicFieldObjectResponse = await query.suiKit.client().getDynamicFieldObject({
|
|
1352
|
+
parentId: marketId,
|
|
1353
|
+
name: {
|
|
1354
|
+
type: `${BORROW_FEE_PROTOCOL_ID}::market_dynamic_keys::BorrowFeeKey`,
|
|
1355
|
+
value: {
|
|
1356
|
+
type: {
|
|
1357
|
+
name: coinType.substring(2)
|
|
1358
|
+
}
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1361
|
+
});
|
|
1362
|
+
const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse.data;
|
|
1363
|
+
if (borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content) {
|
|
1364
|
+
const dynamicFields = borrowFeeDynamicFieldObject.content.fields;
|
|
1365
|
+
borrowFeeRate = dynamicFields.value.fields;
|
|
1366
|
+
}
|
|
1328
1367
|
}
|
|
1329
1368
|
}
|
|
1330
|
-
if (balanceSheet && borrowIndex && interestModel) {
|
|
1369
|
+
if (balanceSheet && borrowIndex && interestModel && borrowFeeRate) {
|
|
1331
1370
|
const parsedMarketPoolData = parseOriginMarketPoolData({
|
|
1332
1371
|
type: interestModel.type.fields,
|
|
1333
1372
|
maxBorrowRate: interestModel.max_borrow_rate.fields,
|
|
@@ -1341,6 +1380,7 @@ var getMarketPool = async (query, poolCoinName, marketObject, coinPrice) => {
|
|
|
1341
1380
|
reserve: balanceSheet.revenue,
|
|
1342
1381
|
reserveFactor: interestModel.revenue_factor.fields,
|
|
1343
1382
|
borrowWeight: interestModel.borrow_weight.fields,
|
|
1383
|
+
borrowFeeRate,
|
|
1344
1384
|
baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
|
|
1345
1385
|
borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
|
|
1346
1386
|
borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
|
|
@@ -1365,6 +1405,7 @@ var getMarketPool = async (query, poolCoinName, marketObject, coinPrice) => {
|
|
|
1365
1405
|
midKink: parsedMarketPoolData.midKink,
|
|
1366
1406
|
reserveFactor: parsedMarketPoolData.reserveFactor,
|
|
1367
1407
|
borrowWeight: parsedMarketPoolData.borrowWeight,
|
|
1408
|
+
borrowFee: parsedMarketPoolData.borrowFee,
|
|
1368
1409
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
1369
1410
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
1370
1411
|
...calculatedMarketPoolData
|
|
@@ -1479,6 +1520,7 @@ var getMarketCollateral = async (query, collateralCoinName, marketObject, coinPr
|
|
|
1479
1520
|
};
|
|
1480
1521
|
var getObligations = async (query, ownerAddress) => {
|
|
1481
1522
|
const owner = ownerAddress || query.suiKit.currentAddress();
|
|
1523
|
+
const protocolObjectId = query.address.get("core.object") || PROTOCOL_OBJECT_ID;
|
|
1482
1524
|
const keyObjectsResponse = [];
|
|
1483
1525
|
let hasNextPage = false;
|
|
1484
1526
|
let nextCursor = null;
|
|
@@ -1486,7 +1528,7 @@ var getObligations = async (query, ownerAddress) => {
|
|
|
1486
1528
|
const paginatedKeyObjectsResponse = await query.suiKit.client().getOwnedObjects({
|
|
1487
1529
|
owner,
|
|
1488
1530
|
filter: {
|
|
1489
|
-
StructType: `${
|
|
1531
|
+
StructType: `${protocolObjectId}::obligation::ObligationKey`
|
|
1490
1532
|
},
|
|
1491
1533
|
cursor: nextCursor
|
|
1492
1534
|
});
|
|
@@ -1723,6 +1765,7 @@ var getSpools = async (query, stakeMarketCoinNames) => {
|
|
|
1723
1765
|
var getSpool = async (query, marketCoinName, marketPool) => {
|
|
1724
1766
|
const coinName = query.utils.parseCoinName(marketCoinName);
|
|
1725
1767
|
marketPool = marketPool || await query.getMarketPool(coinName);
|
|
1768
|
+
const spoolPkgId = query.address.get(`spool.id`);
|
|
1726
1769
|
const poolId = query.address.get(`spool.pools.${marketCoinName}.id`);
|
|
1727
1770
|
const rewardPoolId = query.address.get(
|
|
1728
1771
|
`spool.pools.${marketCoinName}.rewardPoolId`
|
|
@@ -1734,6 +1777,13 @@ var getSpool = async (query, marketCoinName, marketPool) => {
|
|
|
1734
1777
|
showContent: true
|
|
1735
1778
|
}
|
|
1736
1779
|
});
|
|
1780
|
+
const spoolRewardFeeDynamicFieldsResponse = await query.suiKit.client().getDynamicFieldObject({
|
|
1781
|
+
parentId: rewardPoolId,
|
|
1782
|
+
name: {
|
|
1783
|
+
type: `${spoolPkgId}::rewards_pool::RewardsPoolFeeKey`,
|
|
1784
|
+
value: { dummy_field: false }
|
|
1785
|
+
}
|
|
1786
|
+
});
|
|
1737
1787
|
if (marketPool && spoolObjectResponse[0].data && spoolObjectResponse[1].data) {
|
|
1738
1788
|
const rewardCoinName = query.utils.getSpoolRewardCoinName(marketCoinName);
|
|
1739
1789
|
const coinPrices = await query.utils.getCoinPrices([
|
|
@@ -1742,19 +1792,20 @@ var getSpool = async (query, marketCoinName, marketPool) => {
|
|
|
1742
1792
|
]);
|
|
1743
1793
|
const spoolObject = spoolObjectResponse[0].data;
|
|
1744
1794
|
const rewardPoolObject = spoolObjectResponse[1].data;
|
|
1795
|
+
const rewardFeeObject = spoolRewardFeeDynamicFieldsResponse.data;
|
|
1745
1796
|
if (spoolObject.content && "fields" in spoolObject.content) {
|
|
1746
|
-
const
|
|
1797
|
+
const spoolFields = spoolObject.content.fields;
|
|
1747
1798
|
const parsedSpoolData = parseOriginSpoolData({
|
|
1748
|
-
stakeType:
|
|
1749
|
-
maxDistributedPoint:
|
|
1750
|
-
distributedPoint:
|
|
1751
|
-
distributedPointPerPeriod:
|
|
1752
|
-
pointDistributionTime:
|
|
1753
|
-
maxStake:
|
|
1754
|
-
stakes:
|
|
1755
|
-
index:
|
|
1756
|
-
createdAt:
|
|
1757
|
-
lastUpdate:
|
|
1799
|
+
stakeType: spoolFields.stake_type,
|
|
1800
|
+
maxDistributedPoint: spoolFields.max_distributed_point,
|
|
1801
|
+
distributedPoint: spoolFields.distributed_point,
|
|
1802
|
+
distributedPointPerPeriod: spoolFields.distributed_point_per_period,
|
|
1803
|
+
pointDistributionTime: spoolFields.point_distribution_time,
|
|
1804
|
+
maxStake: spoolFields.max_stakes,
|
|
1805
|
+
stakes: spoolFields.stakes,
|
|
1806
|
+
index: spoolFields.index,
|
|
1807
|
+
createdAt: spoolFields.created_at,
|
|
1808
|
+
lastUpdate: spoolFields.last_update
|
|
1758
1809
|
});
|
|
1759
1810
|
const marketCoinPrice = (coinPrices?.[coinName] ?? 0) * marketPool.conversionRate;
|
|
1760
1811
|
const marketCoinDecimal = query.utils.getCoinDecimal(marketCoinName);
|
|
@@ -1763,14 +1814,17 @@ var getSpool = async (query, marketCoinName, marketPool) => {
|
|
|
1763
1814
|
marketCoinPrice,
|
|
1764
1815
|
marketCoinDecimal
|
|
1765
1816
|
);
|
|
1766
|
-
if (rewardPoolObject.content && "fields" in rewardPoolObject.content) {
|
|
1767
|
-
const
|
|
1817
|
+
if (rewardPoolObject.content && rewardFeeObject?.content && "fields" in rewardPoolObject.content && "fields" in rewardFeeObject.content) {
|
|
1818
|
+
const rewardPoolFields = rewardPoolObject.content.fields;
|
|
1819
|
+
const rewardFeeFields = rewardFeeObject.content.fields.value.fields;
|
|
1768
1820
|
const parsedSpoolRewardPoolData = parseOriginSpoolRewardPoolData({
|
|
1769
|
-
claimed_rewards:
|
|
1770
|
-
exchange_rate_numerator:
|
|
1771
|
-
exchange_rate_denominator:
|
|
1772
|
-
|
|
1773
|
-
|
|
1821
|
+
claimed_rewards: rewardPoolFields.claimed_rewards,
|
|
1822
|
+
exchange_rate_numerator: rewardPoolFields.exchange_rate_numerator,
|
|
1823
|
+
exchange_rate_denominator: rewardPoolFields.exchange_rate_denominator,
|
|
1824
|
+
fee_rate_numerator: rewardFeeFields.fee_rate_numerator,
|
|
1825
|
+
fee_rate_denominator: rewardFeeFields.fee_rate_denominator,
|
|
1826
|
+
rewards: rewardPoolFields.rewards,
|
|
1827
|
+
spool_id: rewardPoolFields.spool_id
|
|
1774
1828
|
});
|
|
1775
1829
|
const rewardCoinPrice = coinPrices?.[rewardCoinName] ?? 0;
|
|
1776
1830
|
const rewardCoinDecimal = query.utils.getCoinDecimal(rewardCoinName);
|
|
@@ -1807,8 +1861,8 @@ var getSpool = async (query, marketCoinName, marketPool) => {
|
|
|
1807
1861
|
};
|
|
1808
1862
|
var getStakeAccounts = async (query, ownerAddress) => {
|
|
1809
1863
|
const owner = ownerAddress || query.suiKit.currentAddress();
|
|
1810
|
-
const
|
|
1811
|
-
const stakeAccountType = `${
|
|
1864
|
+
const spoolObjectId = query.address.get("spool.object");
|
|
1865
|
+
const stakeAccountType = `${spoolObjectId}::spool_account::SpoolAccount`;
|
|
1812
1866
|
const stakeObjectsResponse = [];
|
|
1813
1867
|
let hasNextPage = false;
|
|
1814
1868
|
let nextCursor = null;
|
|
@@ -1837,7 +1891,7 @@ var getStakeAccounts = async (query, ownerAddress) => {
|
|
|
1837
1891
|
(types, stakeMarketCoinName) => {
|
|
1838
1892
|
const stakeCoinName = query.utils.parseCoinName(stakeMarketCoinName);
|
|
1839
1893
|
const marketCoinType = query.utils.parseMarketCoinType(stakeCoinName);
|
|
1840
|
-
types[stakeMarketCoinName] = `${
|
|
1894
|
+
types[stakeMarketCoinName] = `${spoolObjectId}::spool_account::SpoolAccount<${marketCoinType}>`;
|
|
1841
1895
|
return types;
|
|
1842
1896
|
},
|
|
1843
1897
|
{}
|
|
@@ -1938,6 +1992,7 @@ var getStakePool = async (query, marketCoinName) => {
|
|
|
1938
1992
|
return stakePool;
|
|
1939
1993
|
};
|
|
1940
1994
|
var getStakeRewardPool = async (query, marketCoinName) => {
|
|
1995
|
+
const spoolPkgId = query.address.get("spool.id");
|
|
1941
1996
|
const poolId = query.address.get(
|
|
1942
1997
|
`spool.pools.${marketCoinName}.rewardPoolId`
|
|
1943
1998
|
);
|
|
@@ -1949,23 +2004,38 @@ var getStakeRewardPool = async (query, marketCoinName) => {
|
|
|
1949
2004
|
showType: true
|
|
1950
2005
|
}
|
|
1951
2006
|
});
|
|
1952
|
-
|
|
2007
|
+
const stakeRewardFeeDynamicFieldsResponse = await query.suiKit.client().getDynamicFieldObject({
|
|
2008
|
+
parentId: poolId,
|
|
2009
|
+
name: {
|
|
2010
|
+
type: `${spoolPkgId}::rewards_pool::RewardsPoolFeeKey`,
|
|
2011
|
+
value: { dummy_field: false }
|
|
2012
|
+
}
|
|
2013
|
+
});
|
|
2014
|
+
if (stakeRewardPoolObjectResponse.data && stakeRewardFeeDynamicFieldsResponse.data) {
|
|
1953
2015
|
const stakeRewardPoolObject = stakeRewardPoolObjectResponse.data;
|
|
2016
|
+
const stakeRewardFeeDynamicFieldObject = stakeRewardFeeDynamicFieldsResponse.data;
|
|
1954
2017
|
const id = stakeRewardPoolObject.objectId;
|
|
1955
2018
|
const type = stakeRewardPoolObject.type;
|
|
1956
|
-
if (stakeRewardPoolObject.content && "fields" in stakeRewardPoolObject.content) {
|
|
1957
|
-
const
|
|
1958
|
-
const
|
|
1959
|
-
const
|
|
1960
|
-
const
|
|
1961
|
-
const
|
|
1962
|
-
|
|
2019
|
+
if (stakeRewardPoolObject.content && stakeRewardFeeDynamicFieldObject.content && "fields" in stakeRewardPoolObject.content && "fields" in stakeRewardFeeDynamicFieldObject.content) {
|
|
2020
|
+
const rewardPoolFields = stakeRewardPoolObject.content.fields;
|
|
2021
|
+
const rewardFeeFields = stakeRewardFeeDynamicFieldObject.content.fields.value.fields;
|
|
2022
|
+
const stakePoolId = String(rewardPoolFields.spool_id);
|
|
2023
|
+
const ratioNumerator = Number(rewardPoolFields.exchange_rate_numerator);
|
|
2024
|
+
const ratioDenominator = Number(
|
|
2025
|
+
rewardPoolFields.exchange_rate_denominator
|
|
2026
|
+
);
|
|
2027
|
+
const rewards = Number(rewardPoolFields.rewards);
|
|
2028
|
+
const claimedRewards = Number(rewardPoolFields.claimed_rewards);
|
|
2029
|
+
const feeRateNumerator = Number(rewardFeeFields.fee_rate_numerator);
|
|
2030
|
+
const feeRateDenominator = Number(rewardFeeFields.fee_rate_denominator);
|
|
1963
2031
|
stakeRewardPool = {
|
|
1964
2032
|
id,
|
|
1965
2033
|
type: (0, import_utils4.normalizeStructTag)(type),
|
|
1966
2034
|
stakePoolId,
|
|
1967
2035
|
ratioNumerator,
|
|
1968
2036
|
ratioDenominator,
|
|
2037
|
+
feeRateNumerator,
|
|
2038
|
+
feeRateDenominator,
|
|
1969
2039
|
rewards,
|
|
1970
2040
|
claimedRewards
|
|
1971
2041
|
};
|
|
@@ -2963,8 +3033,9 @@ var ScallopUtils = class {
|
|
|
2963
3033
|
* @return Market coin type.
|
|
2964
3034
|
*/
|
|
2965
3035
|
parseMarketCoinType(coinName) {
|
|
3036
|
+
const protocolObjectId = this._address.get("core.object") || PROTOCOL_OBJECT_ID;
|
|
2966
3037
|
const coinType = this.parseCoinType(coinName);
|
|
2967
|
-
return `${
|
|
3038
|
+
return `${protocolObjectId}::reserve::MarketCoin<${coinType}>`;
|
|
2968
3039
|
}
|
|
2969
3040
|
parseCoinNameFromType(coinType) {
|
|
2970
3041
|
coinType = (0, import_utils9.normalizeStructTag)(coinType);
|
|
@@ -4659,6 +4730,7 @@ var Scallop = class {
|
|
|
4659
4730
|
0 && (module.exports = {
|
|
4660
4731
|
ADDRESSES_ID,
|
|
4661
4732
|
API_BASE_URL,
|
|
4733
|
+
BORROW_FEE_PROTOCOL_ID,
|
|
4662
4734
|
PROTOCOL_OBJECT_ID,
|
|
4663
4735
|
SUPPORT_BORROW_INCENTIVE_POOLS,
|
|
4664
4736
|
SUPPORT_BORROW_INCENTIVE_REWARDS,
|