@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.js CHANGED
@@ -2266,6 +2266,43 @@ var import_pyth_sui_js = require("@pythnetwork/pyth-sui-js");
2266
2266
  // src/queries/coreQuery.ts
2267
2267
  var import_utils3 = require("@mysten/sui.js/utils");
2268
2268
  var import_bignumber2 = __toESM(require("bignumber.js"));
2269
+
2270
+ // src/queries/supplyLimit.ts
2271
+ var import_zod = require("zod");
2272
+ var supplyLimitZod = import_zod.z.object({
2273
+ dataType: import_zod.z.string(),
2274
+ type: import_zod.z.string(),
2275
+ hasPublicTransfer: import_zod.z.boolean(),
2276
+ fields: import_zod.z.object({
2277
+ id: import_zod.z.object({
2278
+ id: import_zod.z.string()
2279
+ }),
2280
+ name: import_zod.z.object({
2281
+ type: import_zod.z.string()
2282
+ }),
2283
+ value: import_zod.z.string()
2284
+ })
2285
+ });
2286
+ var SUPPLY_LIMIT_TYPE = "0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::SupplyLimitKey";
2287
+ var getSupplyLimit = async (utils, poolName) => {
2288
+ const poolCoinType = utils.parseCoinType(poolName).slice(2);
2289
+ const marketObject = utils.address.get("core.market");
2290
+ if (!marketObject)
2291
+ return null;
2292
+ const object = await utils.cache.queryGetDynamicFieldObject({
2293
+ parentId: marketObject,
2294
+ name: {
2295
+ type: SUPPLY_LIMIT_TYPE,
2296
+ value: poolCoinType
2297
+ }
2298
+ });
2299
+ const parsedData = supplyLimitZod.safeParse(object?.data?.content);
2300
+ if (!parsedData.success)
2301
+ return null;
2302
+ return parsedData.data.fields.value;
2303
+ };
2304
+
2305
+ // src/queries/coreQuery.ts
2269
2306
  var queryMarket = async (query, indexer = false) => {
2270
2307
  const coinPrices = await query.utils.getCoinPrices();
2271
2308
  const pools = {};
@@ -2325,6 +2362,10 @@ var queryMarket = async (query, indexer = false) => {
2325
2362
  query.utils,
2326
2363
  parsedMarketPoolData
2327
2364
  );
2365
+ const coinDecimal = query.utils.getCoinDecimal(poolCoinName);
2366
+ const maxSupplyCoin = (0, import_bignumber2.default)(
2367
+ await getSupplyLimit(query.utils, poolCoinName) ?? "0"
2368
+ ).shiftedBy(-coinDecimal).toNumber();
2328
2369
  pools[poolCoinName] = {
2329
2370
  coinName: poolCoinName,
2330
2371
  symbol: query.utils.parseSymbol(poolCoinName),
@@ -2334,7 +2375,7 @@ var queryMarket = async (query, indexer = false) => {
2334
2375
  query.utils.parseMarketCoinName(poolCoinName)
2335
2376
  ),
2336
2377
  coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
2337
- coinDecimal: query.utils.getCoinDecimal(poolCoinName),
2378
+ coinDecimal,
2338
2379
  coinPrice,
2339
2380
  highKink: parsedMarketPoolData.highKink,
2340
2381
  midKink: parsedMarketPoolData.midKink,
@@ -2343,6 +2384,7 @@ var queryMarket = async (query, indexer = false) => {
2343
2384
  borrowFee: parsedMarketPoolData.borrowFee,
2344
2385
  marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
2345
2386
  minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
2387
+ maxSupplyCoin,
2346
2388
  ...calculatedMarketPoolData
2347
2389
  };
2348
2390
  }
@@ -2546,6 +2588,10 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2546
2588
  query.utils,
2547
2589
  parsedMarketPoolData
2548
2590
  );
2591
+ const coinDecimal = query.utils.getCoinDecimal(poolCoinName);
2592
+ const maxSupplyCoin = (0, import_bignumber2.default)(
2593
+ await getSupplyLimit(query.utils, poolCoinName) ?? "0"
2594
+ ).shiftedBy(-coinDecimal).toNumber();
2549
2595
  marketPool = {
2550
2596
  coinName: poolCoinName,
2551
2597
  symbol: query.utils.parseSymbol(poolCoinName),
@@ -2555,7 +2601,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2555
2601
  query.utils.parseMarketCoinName(poolCoinName)
2556
2602
  ),
2557
2603
  coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
2558
- coinDecimal: query.utils.getCoinDecimal(poolCoinName),
2604
+ coinDecimal,
2559
2605
  coinPrice: coinPrice ?? 0,
2560
2606
  highKink: parsedMarketPoolData.highKink,
2561
2607
  midKink: parsedMarketPoolData.midKink,
@@ -2564,6 +2610,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2564
2610
  borrowFee: parsedMarketPoolData.borrowFee,
2565
2611
  marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
2566
2612
  minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
2613
+ maxSupplyCoin,
2567
2614
  ...calculatedMarketPoolData
2568
2615
  };
2569
2616
  }
@@ -4038,7 +4085,7 @@ var getTotalValueLocked = async (query, indexer = false) => {
4038
4085
  var import_bignumber5 = __toESM(require("bignumber.js"));
4039
4086
  var import_sui_kit3 = require("@scallop-io/sui-kit");
4040
4087
  var import_bcs = require("@mysten/sui.js/bcs");
4041
- var import_zod = require("zod");
4088
+ var import_zod2 = require("zod");
4042
4089
  var getVescaKeys = async (utils, ownerAddress) => {
4043
4090
  const owner = ownerAddress || utils.suiKit.currentAddress();
4044
4091
  const veScaObjId = utils.address.get("vesca.object");
@@ -4082,10 +4129,10 @@ var getVeScas = async ({
4082
4129
  await Promise.allSettled(tasks);
4083
4130
  return veScas.filter(Boolean).sort((a, b) => b.currentVeScaBalance - a.currentVeScaBalance);
4084
4131
  };
4085
- var SuiObjectRefZod = import_zod.z.object({
4086
- objectId: import_zod.z.string(),
4087
- digest: import_zod.z.string(),
4088
- version: import_zod.z.string()
4132
+ var SuiObjectRefZod = import_zod2.z.object({
4133
+ objectId: import_zod2.z.string(),
4134
+ digest: import_zod2.z.string(),
4135
+ version: import_zod2.z.string()
4089
4136
  });
4090
4137
  var getVeSca = async (utils, veScaKey, ownerAddress) => {
4091
4138
  const tableId = utils.address.get(`vesca.tableId`);
@@ -4218,16 +4265,16 @@ var queryVeScaKeyIdFromReferralBindings = async (address, refereeAddress) => {
4218
4265
 
4219
4266
  // src/queries/loyaltyProgramQuery.ts
4220
4267
  var import_bignumber6 = __toESM(require("bignumber.js"));
4221
- var import_zod2 = require("zod");
4222
- var rewardPoolFieldsZod = import_zod2.z.object({
4223
- balance: import_zod2.z.string(),
4224
- enable_claim: import_zod2.z.boolean()
4268
+ var import_zod3 = require("zod");
4269
+ var rewardPoolFieldsZod = import_zod3.z.object({
4270
+ balance: import_zod3.z.string(),
4271
+ enable_claim: import_zod3.z.boolean()
4225
4272
  }).transform((value) => ({
4226
4273
  totalPoolReward: (0, import_bignumber6.default)(value.balance).shiftedBy(-9).toNumber(),
4227
4274
  isClaimEnabled: value.enable_claim
4228
4275
  }));
4229
- var userRewardFieldsZod = import_zod2.z.object({
4230
- value: import_zod2.z.string()
4276
+ var userRewardFieldsZod = import_zod3.z.object({
4277
+ value: import_zod3.z.string()
4231
4278
  }).transform((value) => (0, import_bignumber6.default)(value.value).shiftedBy(-9).toNumber());
4232
4279
  var getLoyaltyProgramInformations = async (query, veScaKey) => {
4233
4280
  const rewardPool = query.address.get("loyaltyProgram.rewardPool");
@@ -4666,7 +4713,7 @@ var ScallopUtils = class {
4666
4713
  return (1 + apr / compoundFrequency) ** compoundFrequency - 1;
4667
4714
  }
4668
4715
  /**
4669
- * Convert apr to apy.
4716
+ * Convert apy to apr.
4670
4717
  *
4671
4718
  * @param apr The equivalent annual percentage yield (APY).
4672
4719
  * @param compoundFrequency How often interest is compounded per year. Default is daily (365 times a year).
@@ -6958,6 +7005,14 @@ var ScallopQuery = class {
6958
7005
  async getTvl(indexer = false) {
6959
7006
  return await getTotalValueLocked(this, indexer);
6960
7007
  }
7008
+ /**
7009
+ * Get veSca data.
7010
+ * @param veScaKey
7011
+ * @returns veSca
7012
+ */
7013
+ async getVeSca(veScaKey) {
7014
+ return await getVeSca(this.utils, veScaKey);
7015
+ }
6961
7016
  /**
6962
7017
  * Get all veSca from walletAdddress
6963
7018
  * @param walletAddress
@@ -7051,6 +7106,12 @@ var ScallopQuery = class {
7051
7106
  async getFlashLoanFees(assetCoinNames = [...SUPPORT_POOLS]) {
7052
7107
  return await getFlashLoanFees(this, assetCoinNames);
7053
7108
  }
7109
+ /**
7110
+ * Get supply limit of supply pool
7111
+ */
7112
+ async getPoolSupplyLimit(poolName) {
7113
+ return await getSupplyLimit(this.utils, poolName);
7114
+ }
7054
7115
  };
7055
7116
 
7056
7117
  // src/models/scallopBuilder.ts