@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.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
|
|
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
|
|
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
|
|
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 =
|
|
4012
|
-
objectId:
|
|
4013
|
-
digest:
|
|
4014
|
-
version:
|
|
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
|
|
4148
|
-
var rewardPoolFieldsZod =
|
|
4149
|
-
balance:
|
|
4150
|
-
enable_claim:
|
|
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 =
|
|
4156
|
-
value:
|
|
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
|
|
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
|