@scallop-io/sui-scallop-sdk 0.46.60 → 0.46.62

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
@@ -2192,6 +2192,43 @@ import { SuiPriceServiceConnection } from "@pythnetwork/pyth-sui-js";
2192
2192
  // src/queries/coreQuery.ts
2193
2193
  import { normalizeStructTag as normalizeStructTag3 } from "@mysten/sui.js/utils";
2194
2194
  import BigNumber2 from "bignumber.js";
2195
+
2196
+ // src/queries/supplyLimit.ts
2197
+ import { z as zod } from "zod";
2198
+ var supplyLimitZod = zod.object({
2199
+ dataType: zod.string(),
2200
+ type: zod.string(),
2201
+ hasPublicTransfer: zod.boolean(),
2202
+ fields: zod.object({
2203
+ id: zod.object({
2204
+ id: zod.string()
2205
+ }),
2206
+ name: zod.object({
2207
+ type: zod.string()
2208
+ }),
2209
+ value: zod.string()
2210
+ })
2211
+ });
2212
+ var SUPPLY_LIMIT_TYPE = "0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::SupplyLimitKey";
2213
+ var getSupplyLimit = async (utils, poolName) => {
2214
+ const poolCoinType = utils.parseCoinType(poolName).slice(2);
2215
+ const marketObject = utils.address.get("core.market");
2216
+ if (!marketObject)
2217
+ return null;
2218
+ const object = await utils.cache.queryGetDynamicFieldObject({
2219
+ parentId: marketObject,
2220
+ name: {
2221
+ type: SUPPLY_LIMIT_TYPE,
2222
+ value: poolCoinType
2223
+ }
2224
+ });
2225
+ const parsedData = supplyLimitZod.safeParse(object?.data?.content);
2226
+ if (!parsedData.success)
2227
+ return null;
2228
+ return parsedData.data.fields.value;
2229
+ };
2230
+
2231
+ // src/queries/coreQuery.ts
2195
2232
  var queryMarket = async (query, indexer = false) => {
2196
2233
  const coinPrices = await query.utils.getCoinPrices();
2197
2234
  const pools = {};
@@ -2251,6 +2288,10 @@ var queryMarket = async (query, indexer = false) => {
2251
2288
  query.utils,
2252
2289
  parsedMarketPoolData
2253
2290
  );
2291
+ const coinDecimal = query.utils.getCoinDecimal(poolCoinName);
2292
+ const maxSupplyCoin = BigNumber2(
2293
+ await getSupplyLimit(query.utils, poolCoinName) ?? "0"
2294
+ ).shiftedBy(-coinDecimal).toNumber();
2254
2295
  pools[poolCoinName] = {
2255
2296
  coinName: poolCoinName,
2256
2297
  symbol: query.utils.parseSymbol(poolCoinName),
@@ -2260,7 +2301,7 @@ var queryMarket = async (query, indexer = false) => {
2260
2301
  query.utils.parseMarketCoinName(poolCoinName)
2261
2302
  ),
2262
2303
  coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
2263
- coinDecimal: query.utils.getCoinDecimal(poolCoinName),
2304
+ coinDecimal,
2264
2305
  coinPrice,
2265
2306
  highKink: parsedMarketPoolData.highKink,
2266
2307
  midKink: parsedMarketPoolData.midKink,
@@ -2269,6 +2310,7 @@ var queryMarket = async (query, indexer = false) => {
2269
2310
  borrowFee: parsedMarketPoolData.borrowFee,
2270
2311
  marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
2271
2312
  minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
2313
+ maxSupplyCoin,
2272
2314
  ...calculatedMarketPoolData
2273
2315
  };
2274
2316
  }
@@ -2472,6 +2514,10 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2472
2514
  query.utils,
2473
2515
  parsedMarketPoolData
2474
2516
  );
2517
+ const coinDecimal = query.utils.getCoinDecimal(poolCoinName);
2518
+ const maxSupplyCoin = BigNumber2(
2519
+ await getSupplyLimit(query.utils, poolCoinName) ?? "0"
2520
+ ).shiftedBy(-coinDecimal).toNumber();
2475
2521
  marketPool = {
2476
2522
  coinName: poolCoinName,
2477
2523
  symbol: query.utils.parseSymbol(poolCoinName),
@@ -2481,7 +2527,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2481
2527
  query.utils.parseMarketCoinName(poolCoinName)
2482
2528
  ),
2483
2529
  coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
2484
- coinDecimal: query.utils.getCoinDecimal(poolCoinName),
2530
+ coinDecimal,
2485
2531
  coinPrice: coinPrice ?? 0,
2486
2532
  highKink: parsedMarketPoolData.highKink,
2487
2533
  midKink: parsedMarketPoolData.midKink,
@@ -2490,6 +2536,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2490
2536
  borrowFee: parsedMarketPoolData.borrowFee,
2491
2537
  marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
2492
2538
  minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
2539
+ maxSupplyCoin,
2493
2540
  ...calculatedMarketPoolData
2494
2541
  };
2495
2542
  }
@@ -3964,7 +4011,7 @@ var getTotalValueLocked = async (query, indexer = false) => {
3964
4011
  import BigNumber5 from "bignumber.js";
3965
4012
  import { SUI_CLOCK_OBJECT_ID, SuiTxBlock as SuiTxBlock2 } from "@scallop-io/sui-kit";
3966
4013
  import { bcs } from "@mysten/sui.js/bcs";
3967
- import { z as zod } from "zod";
4014
+ import { z as zod2 } from "zod";
3968
4015
  var getVescaKeys = async (utils, ownerAddress) => {
3969
4016
  const owner = ownerAddress || utils.suiKit.currentAddress();
3970
4017
  const veScaObjId = utils.address.get("vesca.object");
@@ -4008,10 +4055,10 @@ var getVeScas = async ({
4008
4055
  await Promise.allSettled(tasks);
4009
4056
  return veScas.filter(Boolean).sort((a, b) => b.currentVeScaBalance - a.currentVeScaBalance);
4010
4057
  };
4011
- var SuiObjectRefZod = zod.object({
4012
- objectId: zod.string(),
4013
- digest: zod.string(),
4014
- version: zod.string()
4058
+ var SuiObjectRefZod = zod2.object({
4059
+ objectId: zod2.string(),
4060
+ digest: zod2.string(),
4061
+ version: zod2.string()
4015
4062
  });
4016
4063
  var getVeSca = async (utils, veScaKey, ownerAddress) => {
4017
4064
  const tableId = utils.address.get(`vesca.tableId`);
@@ -4144,16 +4191,16 @@ var queryVeScaKeyIdFromReferralBindings = async (address, refereeAddress) => {
4144
4191
 
4145
4192
  // src/queries/loyaltyProgramQuery.ts
4146
4193
  import BigNumber6 from "bignumber.js";
4147
- import { z as zod2 } from "zod";
4148
- var rewardPoolFieldsZod = zod2.object({
4149
- balance: zod2.string(),
4150
- enable_claim: zod2.boolean()
4194
+ import { z as zod3 } from "zod";
4195
+ var rewardPoolFieldsZod = zod3.object({
4196
+ balance: zod3.string(),
4197
+ enable_claim: zod3.boolean()
4151
4198
  }).transform((value) => ({
4152
4199
  totalPoolReward: BigNumber6(value.balance).shiftedBy(-9).toNumber(),
4153
4200
  isClaimEnabled: value.enable_claim
4154
4201
  }));
4155
- var userRewardFieldsZod = zod2.object({
4156
- value: zod2.string()
4202
+ var userRewardFieldsZod = zod3.object({
4203
+ value: zod3.string()
4157
4204
  }).transform((value) => BigNumber6(value.value).shiftedBy(-9).toNumber());
4158
4205
  var getLoyaltyProgramInformations = async (query, veScaKey) => {
4159
4206
  const rewardPool = query.address.get("loyaltyProgram.rewardPool");
@@ -4592,7 +4639,7 @@ var ScallopUtils = class {
4592
4639
  return (1 + apr / compoundFrequency) ** compoundFrequency - 1;
4593
4640
  }
4594
4641
  /**
4595
- * Convert apr to apy.
4642
+ * Convert apy to apr.
4596
4643
  *
4597
4644
  * @param apr The equivalent annual percentage yield (APY).
4598
4645
  * @param compoundFrequency How often interest is compounded per year. Default is daily (365 times a year).
@@ -6898,6 +6945,14 @@ var ScallopQuery = class {
6898
6945
  async getTvl(indexer = false) {
6899
6946
  return await getTotalValueLocked(this, indexer);
6900
6947
  }
6948
+ /**
6949
+ * Get veSca data.
6950
+ * @param veScaKey
6951
+ * @returns veSca
6952
+ */
6953
+ async getVeSca(veScaKey) {
6954
+ return await getVeSca(this.utils, veScaKey);
6955
+ }
6901
6956
  /**
6902
6957
  * Get all veSca from walletAdddress
6903
6958
  * @param walletAddress
@@ -6991,6 +7046,12 @@ var ScallopQuery = class {
6991
7046
  async getFlashLoanFees(assetCoinNames = [...SUPPORT_POOLS]) {
6992
7047
  return await getFlashLoanFees(this, assetCoinNames);
6993
7048
  }
7049
+ /**
7050
+ * Get supply limit of supply pool
7051
+ */
7052
+ async getPoolSupplyLimit(poolName) {
7053
+ return await getSupplyLimit(this.utils, poolName);
7054
+ }
6994
7055
  };
6995
7056
 
6996
7057
  // src/models/scallopBuilder.ts