@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/index.mjs CHANGED
@@ -30,7 +30,14 @@ var SUPPORT_COLLATERALS = [
30
30
  "hasui",
31
31
  "vsui"
32
32
  ];
33
- var SUPPORT_SPOOLS = ["ssui", "susdc", "susdt"];
33
+ var SUPPORT_SPOOLS = [
34
+ "ssui",
35
+ "susdc",
36
+ "susdt",
37
+ "safsui",
38
+ "shasui",
39
+ "svsui"
40
+ ];
34
41
  var SUPPORT_SPOOLS_REWARDS = ["sui"];
35
42
  var SUPPORT_BORROW_INCENTIVE_POOLS = ["sui", "usdc", "usdt"];
36
43
  var SUPPORT_BORROW_INCENTIVE_REWARDS = ["sui"];
@@ -104,12 +111,18 @@ var marketCoins = {
104
111
  var stakeMarketCoins = {
105
112
  ssui: "ssui",
106
113
  susdc: "susdc",
107
- susdt: "susdt"
114
+ susdt: "susdt",
115
+ safsui: "safsui",
116
+ shasui: "shasui",
117
+ svsui: "svsui"
108
118
  };
109
119
  var spoolRewardCoins = {
110
120
  ssui: "sui",
111
121
  susdc: "sui",
112
- susdt: "sui"
122
+ susdt: "sui",
123
+ safsui: "sui",
124
+ shasui: "sui",
125
+ svsui: "sui"
113
126
  };
114
127
  var borrowIncentiveRewardCoins = {
115
128
  sui: "sui",
@@ -337,6 +350,22 @@ var EMPTY_ADDRESSES = {
337
350
  susdc: {
338
351
  id: "",
339
352
  rewardPoolId: ""
353
+ },
354
+ susdt: {
355
+ id: "",
356
+ rewardPoolId: ""
357
+ },
358
+ safsui: {
359
+ id: "",
360
+ rewardPoolId: ""
361
+ },
362
+ shasui: {
363
+ id: "",
364
+ rewardPoolId: ""
365
+ },
366
+ svsui: {
367
+ id: "",
368
+ rewardPoolId: ""
340
369
  }
341
370
  }
342
371
  },
@@ -870,8 +899,6 @@ var parseOriginSpoolRewardPoolData = (originSpoolRewardPoolData) => {
870
899
  exchangeRateNumerator: Number(
871
900
  originSpoolRewardPoolData.exchange_rate_numerator
872
901
  ),
873
- feeRateDenominator: Number(originSpoolRewardPoolData.fee_rate_denominator),
874
- feeRateNumerator: Number(originSpoolRewardPoolData.fee_rate_numerator),
875
902
  rewards: Number(originSpoolRewardPoolData.rewards),
876
903
  spoolId: String(originSpoolRewardPoolData.spool_id)
877
904
  };
@@ -896,7 +923,6 @@ var calculateSpoolRewardPoolData = (parsedSpoolData, parsedSpoolRewardPoolData,
896
923
  const claimedRewardValue = claimedRewardCoin.multipliedBy(rewardCoinPrice);
897
924
  const rewardValueForYear = BigNumber(rewardPerSec).shiftedBy(-1 * rewardCoinDecimal).multipliedBy(rateYearFactor).multipliedBy(rewardCoinPrice);
898
925
  const rewardRate = rewardValueForYear.dividedBy(calculatedSpoolData.stakedValue).isFinite() ? rewardValueForYear.dividedBy(calculatedSpoolData.stakedValue).toNumber() : Infinity;
899
- const rewardFeeRate = BigNumber(parsedSpoolRewardPoolData.feeRateNumerator).dividedBy(parsedSpoolRewardPoolData.feeRateDenominator).toNumber();
900
926
  return {
901
927
  rewardApr: rewardRate,
902
928
  totalRewardAmount: totalRewardAmount.toNumber(),
@@ -908,8 +934,7 @@ var calculateSpoolRewardPoolData = (parsedSpoolData, parsedSpoolRewardPoolData,
908
934
  claimedRewardAmount: claimedRewardAmount.toNumber(),
909
935
  claimedRewardCoin: claimedRewardCoin.toNumber(),
910
936
  claimedRewardValue: claimedRewardValue.toNumber(),
911
- rewardPerSec: rewardPerSec.toNumber(),
912
- rewardFee: rewardFeeRate
937
+ rewardPerSec: rewardPerSec.toNumber()
913
938
  };
914
939
  };
915
940
  var parseOriginBorrowIncentivePoolData = (originBorrowIncentivePoolData) => {
@@ -984,12 +1009,6 @@ var parseOriginBorrowIncentiveRewardPoolData = (originBorrowIncentiveRewardPoolD
984
1009
  exchangeRateDenominator: Number(
985
1010
  originBorrowIncentiveRewardPoolData.exchange_rate_denominator
986
1011
  ),
987
- rewardsFeeRateNumerator: Number(
988
- originBorrowIncentiveRewardPoolData.rewards_fee_rate_numerator
989
- ),
990
- rewardsFeeRateDenominator: Number(
991
- originBorrowIncentiveRewardPoolData.rewards_fee_rate_denominator
992
- ),
993
1012
  remainingRewards: Number(
994
1013
  originBorrowIncentiveRewardPoolData.remaining_reward
995
1014
  )
@@ -1019,9 +1038,6 @@ var calculateBorrowIncentiveRewardPoolData = (parsedBorrowIncentivePoolData, par
1019
1038
  const claimedRewardValue = claimedRewardCoin.multipliedBy(rewardCoinPrice);
1020
1039
  const rewardValueForYear = BigNumber(rewardPerSec).shiftedBy(-1 * rewardCoinDecimal).multipliedBy(rateYearFactor).multipliedBy(rewardCoinPrice);
1021
1040
  const rewardRate = rewardValueForYear.dividedBy(calculatedBorrowIncentivePoolData.stakedValue).isFinite() ? rewardValueForYear.dividedBy(calculatedBorrowIncentivePoolData.stakedValue).toNumber() : Infinity;
1022
- const rewardFeeRate = BigNumber(
1023
- parsedBorrowIncentiveRewardPoolData.rewardsFeeRateNumerator
1024
- ).dividedBy(parsedBorrowIncentiveRewardPoolData.rewardsFeeRateDenominator).toNumber();
1025
1041
  return {
1026
1042
  rewardApr: rewardRate,
1027
1043
  totalRewardAmount: totalRewardAmount.toNumber(),
@@ -1033,8 +1049,7 @@ var calculateBorrowIncentiveRewardPoolData = (parsedBorrowIncentivePoolData, par
1033
1049
  claimedRewardAmount: claimedRewardAmount.toNumber(),
1034
1050
  claimedRewardCoin: claimedRewardCoin.toNumber(),
1035
1051
  claimedRewardValue: claimedRewardValue.toNumber(),
1036
- rewardPerSec: rewardPerSec.toNumber(),
1037
- rewardFee: rewardFeeRate
1052
+ rewardPerSec: rewardPerSec.toNumber()
1038
1053
  };
1039
1054
  };
1040
1055
  var parseOriginBorrowIncentiveAccountData = (originBorrowIncentiveAccountData) => {
@@ -1815,7 +1830,6 @@ var getSpools = async (query, stakeMarketCoinNames, indexer = false) => {
1815
1830
  var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPrices) => {
1816
1831
  const coinName = query.utils.parseCoinName(marketCoinName);
1817
1832
  marketPool = marketPool || await query.getMarketPool(coinName, indexer);
1818
- const spoolPkgId = query.address.get(`spool.id`);
1819
1833
  const poolId = query.address.get(`spool.pools.${marketCoinName}.id`);
1820
1834
  const rewardPoolId = query.address.get(
1821
1835
  `spool.pools.${marketCoinName}.rewardPoolId`
@@ -1836,19 +1850,11 @@ var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPr
1836
1850
  showContent: true
1837
1851
  }
1838
1852
  });
1839
- const spoolRewardFeeDynamicFieldsResponse = await query.suiKit.client().getDynamicFieldObject({
1840
- parentId: rewardPoolId,
1841
- name: {
1842
- type: `${spoolPkgId}::rewards_pool::RewardsPoolFeeKey`,
1843
- value: { dummy_field: false }
1844
- }
1845
- });
1846
1853
  if (marketPool && spoolObjectResponse[0].data && spoolObjectResponse[1].data) {
1847
1854
  const rewardCoinName = query.utils.getSpoolRewardCoinName(marketCoinName);
1848
1855
  coinPrices = coinPrices || await query.utils.getCoinPrices([coinName, rewardCoinName]);
1849
1856
  const spoolObject = spoolObjectResponse[0].data;
1850
1857
  const rewardPoolObject = spoolObjectResponse[1].data;
1851
- const rewardFeeObject = spoolRewardFeeDynamicFieldsResponse.data;
1852
1858
  if (spoolObject.content && "fields" in spoolObject.content) {
1853
1859
  const spoolFields = spoolObject.content.fields;
1854
1860
  const parsedSpoolData = parseOriginSpoolData({
@@ -1870,15 +1876,12 @@ var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPr
1870
1876
  marketCoinPrice,
1871
1877
  marketCoinDecimal
1872
1878
  );
1873
- if (rewardPoolObject.content && rewardFeeObject?.content && "fields" in rewardPoolObject.content && "fields" in rewardFeeObject.content) {
1879
+ if (rewardPoolObject.content && "fields" in rewardPoolObject.content) {
1874
1880
  const rewardPoolFields = rewardPoolObject.content.fields;
1875
- const rewardFeeFields = rewardFeeObject.content.fields.value.fields;
1876
1881
  const parsedSpoolRewardPoolData = parseOriginSpoolRewardPoolData({
1877
1882
  claimed_rewards: rewardPoolFields.claimed_rewards,
1878
1883
  exchange_rate_numerator: rewardPoolFields.exchange_rate_numerator,
1879
1884
  exchange_rate_denominator: rewardPoolFields.exchange_rate_denominator,
1880
- fee_rate_numerator: rewardFeeFields.fee_rate_numerator,
1881
- fee_rate_denominator: rewardFeeFields.fee_rate_denominator,
1882
1885
  rewards: rewardPoolFields.rewards,
1883
1886
  spool_id: rewardPoolFields.spool_id
1884
1887
  });
@@ -1943,7 +1946,10 @@ var getStakeAccounts = async (query, ownerAddress) => {
1943
1946
  const stakeAccounts = {
1944
1947
  ssui: [],
1945
1948
  susdc: [],
1946
- susdt: []
1949
+ susdt: [],
1950
+ safsui: [],
1951
+ shasui: [],
1952
+ svsui: []
1947
1953
  };
1948
1954
  const stakeMarketCoinTypes = Object.keys(stakeAccounts).reduce(
1949
1955
  (types, stakeMarketCoinName) => {
@@ -2000,6 +2006,39 @@ var getStakeAccounts = async (query, ownerAddress) => {
2000
2006
  points,
2001
2007
  totalPoints
2002
2008
  });
2009
+ } else if (normalizeStructTag3(type) === stakeMarketCoinTypes.safsui) {
2010
+ stakeAccounts.safsui.push({
2011
+ id,
2012
+ type: normalizeStructTag3(type),
2013
+ stakePoolId,
2014
+ stakeType: normalizeStructTag3(stakeType),
2015
+ staked,
2016
+ index,
2017
+ points,
2018
+ totalPoints
2019
+ });
2020
+ } else if (normalizeStructTag3(type) === stakeMarketCoinTypes.shasui) {
2021
+ stakeAccounts.shasui.push({
2022
+ id,
2023
+ type: normalizeStructTag3(type),
2024
+ stakePoolId,
2025
+ stakeType: normalizeStructTag3(stakeType),
2026
+ staked,
2027
+ index,
2028
+ points,
2029
+ totalPoints
2030
+ });
2031
+ } else if (normalizeStructTag3(type) === stakeMarketCoinTypes.svsui) {
2032
+ stakeAccounts.svsui.push({
2033
+ id,
2034
+ type: normalizeStructTag3(type),
2035
+ stakePoolId,
2036
+ stakeType: normalizeStructTag3(stakeType),
2037
+ staked,
2038
+ index,
2039
+ points,
2040
+ totalPoints
2041
+ });
2003
2042
  }
2004
2043
  }
2005
2044
  }
@@ -2050,7 +2089,6 @@ var getStakePool = async (query, marketCoinName) => {
2050
2089
  return stakePool;
2051
2090
  };
2052
2091
  var getStakeRewardPool = async (query, marketCoinName) => {
2053
- const spoolPkgId = query.address.get("spool.id");
2054
2092
  const poolId = query.address.get(
2055
2093
  `spool.pools.${marketCoinName}.rewardPoolId`
2056
2094
  );
@@ -2062,21 +2100,12 @@ var getStakeRewardPool = async (query, marketCoinName) => {
2062
2100
  showType: true
2063
2101
  }
2064
2102
  });
2065
- const stakeRewardFeeDynamicFieldsResponse = await query.suiKit.client().getDynamicFieldObject({
2066
- parentId: poolId,
2067
- name: {
2068
- type: `${spoolPkgId}::rewards_pool::RewardsPoolFeeKey`,
2069
- value: { dummy_field: false }
2070
- }
2071
- });
2072
- if (stakeRewardPoolObjectResponse.data && stakeRewardFeeDynamicFieldsResponse.data) {
2103
+ if (stakeRewardPoolObjectResponse.data) {
2073
2104
  const stakeRewardPoolObject = stakeRewardPoolObjectResponse.data;
2074
- const stakeRewardFeeDynamicFieldObject = stakeRewardFeeDynamicFieldsResponse.data;
2075
2105
  const id = stakeRewardPoolObject.objectId;
2076
2106
  const type = stakeRewardPoolObject.type;
2077
- if (stakeRewardPoolObject.content && stakeRewardFeeDynamicFieldObject.content && "fields" in stakeRewardPoolObject.content && "fields" in stakeRewardFeeDynamicFieldObject.content) {
2107
+ if (stakeRewardPoolObject.content && "fields" in stakeRewardPoolObject.content) {
2078
2108
  const rewardPoolFields = stakeRewardPoolObject.content.fields;
2079
- const rewardFeeFields = stakeRewardFeeDynamicFieldObject.content.fields.value.fields;
2080
2109
  const stakePoolId = String(rewardPoolFields.spool_id);
2081
2110
  const ratioNumerator = Number(rewardPoolFields.exchange_rate_numerator);
2082
2111
  const ratioDenominator = Number(
@@ -2084,16 +2113,12 @@ var getStakeRewardPool = async (query, marketCoinName) => {
2084
2113
  );
2085
2114
  const rewards = Number(rewardPoolFields.rewards);
2086
2115
  const claimedRewards = Number(rewardPoolFields.claimed_rewards);
2087
- const feeRateNumerator = Number(rewardFeeFields.fee_rate_numerator);
2088
- const feeRateDenominator = Number(rewardFeeFields.fee_rate_denominator);
2089
2116
  stakeRewardPool = {
2090
2117
  id,
2091
2118
  type: normalizeStructTag3(type),
2092
2119
  stakePoolId,
2093
2120
  ratioNumerator,
2094
2121
  ratioDenominator,
2095
- feeRateNumerator,
2096
- feeRateDenominator,
2097
2122
  rewards,
2098
2123
  claimedRewards
2099
2124
  };
@@ -2354,6 +2379,9 @@ var getLending = async (query, poolCoinName, ownerAddress, indexer = false, mark
2354
2379
  );
2355
2380
  const suppliedCoin = suppliedAmount.shiftedBy(-1 * coinDecimal);
2356
2381
  const suppliedValue = suppliedCoin.multipliedBy(coinPrice ?? 0);
2382
+ const marketCoinPrice = BigNumber3(coinPrice ?? 0).multipliedBy(
2383
+ marketPool?.conversionRate ?? 1
2384
+ );
2357
2385
  const unstakedMarketAmount = BigNumber3(marketCoinAmount);
2358
2386
  const unstakedMarketCoin = unstakedMarketAmount.shiftedBy(-1 * coinDecimal);
2359
2387
  const availableSupplyAmount = BigNumber3(coinAmount);
@@ -2373,6 +2401,8 @@ var getLending = async (query, poolCoinName, ownerAddress, indexer = false, mark
2373
2401
  marketCoinType: query.utils.parseMarketCoinType(poolCoinName),
2374
2402
  coinDecimal,
2375
2403
  coinPrice: coinPrice ?? 0,
2404
+ conversionRate: marketPool?.conversionRate ?? 1,
2405
+ marketCoinPrice: marketCoinPrice.toNumber(),
2376
2406
  supplyApr: marketPool?.supplyApr ?? 0,
2377
2407
  supplyApy: marketPool?.supplyApy ?? 0,
2378
2408
  rewardApr: spool?.rewardApr ?? 0,
@@ -4400,14 +4430,14 @@ var ScallopBuilder = class {
4400
4430
  /**
4401
4431
  * Request the scallop API to initialize data.
4402
4432
  *
4403
- * @param forece - Whether to force initialization.
4433
+ * @param force - Whether to force initialization.
4404
4434
  */
4405
- async init(forece = false) {
4406
- if (forece || !this.address.getAddresses()) {
4435
+ async init(force = false) {
4436
+ if (force || !this.address.getAddresses()) {
4407
4437
  await this.address.read();
4408
4438
  }
4409
- await this.query.init(forece);
4410
- await this.utils.init(forece);
4439
+ await this.query.init(force);
4440
+ await this.utils.init(force);
4411
4441
  }
4412
4442
  /**
4413
4443
  * Create a scallop txBlock instance that enhances transaction block.