@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 +75 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +75 -14
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopQuery.d.ts +10 -0
- package/dist/models/scallopUtils.d.ts +1 -1
- package/dist/queries/supplyLimit.d.ts +9 -0
- package/dist/types/query/core.d.ts +1 -0
- package/package.json +1 -1
- package/src/models/scallopQuery.ts +18 -0
- package/src/models/scallopUtils.ts +1 -1
- package/src/queries/coreQuery.ts +19 -2
- package/src/queries/supplyLimit.ts +48 -0
- package/src/types/query/core.ts +1 -0
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
|
|
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
|
|
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
|
|
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 =
|
|
4086
|
-
objectId:
|
|
4087
|
-
digest:
|
|
4088
|
-
version:
|
|
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
|
|
4222
|
-
var rewardPoolFieldsZod =
|
|
4223
|
-
balance:
|
|
4224
|
-
enable_claim:
|
|
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 =
|
|
4230
|
-
value:
|
|
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
|
|
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
|