@scallop-io/sui-scallop-sdk 0.46.58 → 0.46.61

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,7 @@ var queryMarket = async (query, indexer = false) => {
2325
2362
  query.utils,
2326
2363
  parsedMarketPoolData
2327
2364
  );
2365
+ const supplyLimit = await getSupplyLimit(query.utils, poolCoinName) ?? "0";
2328
2366
  pools[poolCoinName] = {
2329
2367
  coinName: poolCoinName,
2330
2368
  symbol: query.utils.parseSymbol(poolCoinName),
@@ -2343,6 +2381,7 @@ var queryMarket = async (query, indexer = false) => {
2343
2381
  borrowFee: parsedMarketPoolData.borrowFee,
2344
2382
  marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
2345
2383
  minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
2384
+ supplyLimit,
2346
2385
  ...calculatedMarketPoolData
2347
2386
  };
2348
2387
  }
@@ -2546,6 +2585,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2546
2585
  query.utils,
2547
2586
  parsedMarketPoolData
2548
2587
  );
2588
+ const supplyLimit = await getSupplyLimit(query.utils, poolCoinName) ?? "0";
2549
2589
  marketPool = {
2550
2590
  coinName: poolCoinName,
2551
2591
  symbol: query.utils.parseSymbol(poolCoinName),
@@ -2564,6 +2604,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2564
2604
  borrowFee: parsedMarketPoolData.borrowFee,
2565
2605
  marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
2566
2606
  minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
2607
+ supplyLimit,
2567
2608
  ...calculatedMarketPoolData
2568
2609
  };
2569
2610
  }
@@ -4038,7 +4079,7 @@ var getTotalValueLocked = async (query, indexer = false) => {
4038
4079
  var import_bignumber5 = __toESM(require("bignumber.js"));
4039
4080
  var import_sui_kit3 = require("@scallop-io/sui-kit");
4040
4081
  var import_bcs = require("@mysten/sui.js/bcs");
4041
- var import_zod = require("zod");
4082
+ var import_zod2 = require("zod");
4042
4083
  var getVescaKeys = async (utils, ownerAddress) => {
4043
4084
  const owner = ownerAddress || utils.suiKit.currentAddress();
4044
4085
  const veScaObjId = utils.address.get("vesca.object");
@@ -4082,10 +4123,10 @@ var getVeScas = async ({
4082
4123
  await Promise.allSettled(tasks);
4083
4124
  return veScas.filter(Boolean).sort((a, b) => b.currentVeScaBalance - a.currentVeScaBalance);
4084
4125
  };
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()
4126
+ var SuiObjectRefZod = import_zod2.z.object({
4127
+ objectId: import_zod2.z.string(),
4128
+ digest: import_zod2.z.string(),
4129
+ version: import_zod2.z.string()
4089
4130
  });
4090
4131
  var getVeSca = async (utils, veScaKey, ownerAddress) => {
4091
4132
  const tableId = utils.address.get(`vesca.tableId`);
@@ -4218,16 +4259,16 @@ var queryVeScaKeyIdFromReferralBindings = async (address, refereeAddress) => {
4218
4259
 
4219
4260
  // src/queries/loyaltyProgramQuery.ts
4220
4261
  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()
4262
+ var import_zod3 = require("zod");
4263
+ var rewardPoolFieldsZod = import_zod3.z.object({
4264
+ balance: import_zod3.z.string(),
4265
+ enable_claim: import_zod3.z.boolean()
4225
4266
  }).transform((value) => ({
4226
4267
  totalPoolReward: (0, import_bignumber6.default)(value.balance).shiftedBy(-9).toNumber(),
4227
4268
  isClaimEnabled: value.enable_claim
4228
4269
  }));
4229
- var userRewardFieldsZod = import_zod2.z.object({
4230
- value: import_zod2.z.string()
4270
+ var userRewardFieldsZod = import_zod3.z.object({
4271
+ value: import_zod3.z.string()
4231
4272
  }).transform((value) => (0, import_bignumber6.default)(value.value).shiftedBy(-9).toNumber());
4232
4273
  var getLoyaltyProgramInformations = async (query, veScaKey) => {
4233
4274
  const rewardPool = query.address.get("loyaltyProgram.rewardPool");
@@ -5117,41 +5158,37 @@ var generateCoreQuickMethod = ({
5117
5158
  const sCoinName = builder.utils.parseSCoinName(poolCoinName);
5118
5159
  if (!sCoinName)
5119
5160
  throw new Error(`No sCoin for ${poolCoinName}`);
5120
- const { leftCoin, takeCoin, totalAmount } = await builder.selectSCoin(
5121
- txBlock,
5122
- sCoinName,
5123
- amount,
5124
- sender
5125
- );
5161
+ const {
5162
+ leftCoin,
5163
+ takeCoin: sCoins2,
5164
+ totalAmount
5165
+ } = await builder.selectSCoin(txBlock, sCoinName, amount, sender);
5126
5166
  txBlock.transferObjects([leftCoin], sender);
5127
- const marketCoin = txBlock.burnSCoin(sCoinName, takeCoin);
5128
- const txResult = txBlock.withdraw(marketCoin, poolCoinName);
5167
+ const marketCoins2 = txBlock.burnSCoin(sCoinName, sCoins2);
5129
5168
  amount -= totalAmount;
5130
5169
  try {
5131
5170
  if (amount > 0) {
5132
- const { leftCoin: leftCoin2, takeCoin: takeCoin2 } = await builder.selectMarketCoin(
5171
+ const { leftCoin: leftCoin2, takeCoin: walletMarketCoins } = await builder.selectMarketCoin(
5133
5172
  txBlock,
5134
5173
  marketCoinName,
5135
5174
  amount,
5136
5175
  sender
5137
5176
  );
5138
5177
  txBlock.transferObjects([leftCoin2], sender);
5139
- txBlock.mergeCoins(txResult, [
5140
- txBlock.withdraw(takeCoin2, poolCoinName)
5141
- ]);
5178
+ txBlock.mergeCoins(marketCoins2, [walletMarketCoins]);
5142
5179
  }
5143
5180
  } catch (e) {
5144
5181
  }
5145
- return txResult;
5182
+ return txBlock.withdraw(marketCoins2, poolCoinName);
5146
5183
  } catch (e) {
5147
- const { leftCoin, takeCoin } = await builder.selectMarketCoin(
5184
+ const { leftCoin, takeCoin: walletMarketCoins } = await builder.selectMarketCoin(
5148
5185
  txBlock,
5149
5186
  marketCoinName,
5150
5187
  amount,
5151
5188
  sender
5152
5189
  );
5153
5190
  txBlock.transferObjects([leftCoin], sender);
5154
- return txBlock.withdraw(takeCoin, poolCoinName);
5191
+ return txBlock.withdraw(walletMarketCoins, poolCoinName);
5155
5192
  }
5156
5193
  },
5157
5194
  borrowQuick: async (amount, poolCoinName, obligationId, obligationKey) => {
@@ -6962,6 +6999,14 @@ var ScallopQuery = class {
6962
6999
  async getTvl(indexer = false) {
6963
7000
  return await getTotalValueLocked(this, indexer);
6964
7001
  }
7002
+ /**
7003
+ * Get veSca data.
7004
+ * @param veScaKey
7005
+ * @returns veSca
7006
+ */
7007
+ async getVeSca(veScaKey) {
7008
+ return await getVeSca(this.utils, veScaKey);
7009
+ }
6965
7010
  /**
6966
7011
  * Get all veSca from walletAdddress
6967
7012
  * @param walletAddress
@@ -7055,6 +7100,12 @@ var ScallopQuery = class {
7055
7100
  async getFlashLoanFees(assetCoinNames = [...SUPPORT_POOLS]) {
7056
7101
  return await getFlashLoanFees(this, assetCoinNames);
7057
7102
  }
7103
+ /**
7104
+ * Get supply limit of supply pool
7105
+ */
7106
+ async getPoolSupplyLimit(poolName) {
7107
+ return await getSupplyLimit(this.utils, poolName);
7108
+ }
7058
7109
  };
7059
7110
 
7060
7111
  // src/models/scallopBuilder.ts