@scallop-io/sui-scallop-sdk 0.46.39 → 0.46.40
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/constants/flashloan.d.ts +2 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +81 -0
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopQuery.d.ts +4 -0
- package/dist/queries/coreQuery.d.ts +7 -0
- package/package.json +1 -1
- package/src/constants/flashloan.ts +18 -0
- package/src/constants/index.ts +1 -0
- package/src/models/scallopQuery.ts +11 -1
- package/src/queries/coreQuery.ts +92 -0
package/dist/index.js
CHANGED
|
@@ -33,6 +33,7 @@ __export(src_exports, {
|
|
|
33
33
|
ADDRESSES_ID: () => ADDRESSES_ID,
|
|
34
34
|
API_BASE_URL: () => API_BASE_URL,
|
|
35
35
|
BORROW_FEE_PROTOCOL_ID: () => BORROW_FEE_PROTOCOL_ID,
|
|
36
|
+
FlashLoanFeeObjectMap: () => FlashLoanFeeObjectMap,
|
|
36
37
|
IS_VE_SCA_TEST: () => IS_VE_SCA_TEST,
|
|
37
38
|
MAX_LOCK_DURATION: () => MAX_LOCK_DURATION,
|
|
38
39
|
MAX_LOCK_ROUNDS: () => MAX_LOCK_ROUNDS,
|
|
@@ -267,6 +268,22 @@ var MAX_LOCK_DURATION = MAX_LOCK_ROUNDS * UNLOCK_ROUND_DURATION;
|
|
|
267
268
|
var MIN_INITIAL_LOCK_AMOUNT = 1e10;
|
|
268
269
|
var MIN_TOP_UP_AMOUNT = 1e9;
|
|
269
270
|
|
|
271
|
+
// src/constants/flashloan.ts
|
|
272
|
+
var FlashLoanFeeObjectMap = {
|
|
273
|
+
vsui: "0x0069cddee7a5c0b1d34beb5ef0620f978096525f1830b055f38b110f40d73fbb",
|
|
274
|
+
btc: "0x2078490aa37d8fb42b511e5c95e217cb957d141267e16980bc802d76b42719f7",
|
|
275
|
+
sui: "0x27614284a8f0a699ffd35aae8f2572c937ec76771cb21b0d7930ec4491a76ed4",
|
|
276
|
+
usdt: "0x5b61983a19b5159ca348d291e4b595f42db70ccda32852a2ed85528aa65171e4",
|
|
277
|
+
apt: "0x9d5898edcd1e4abcb044273242293a9d036f6a977bf3fe57ab71f5a87c505ee6",
|
|
278
|
+
afsui: "0xac87fde83d434554ec300c1334c9a622aa5b59e82a04334dc99e1cc1f75d4eae",
|
|
279
|
+
hasui: "0xb9f505d532de1d6c9f3a8522a2d16f2958b75c0ed939d4f80b96f584a2a8ed5e",
|
|
280
|
+
usdc: "0xd241d6a7e44ac11a6689370ed9a98eec389b98b8a6695c61fddede9fa7567b90",
|
|
281
|
+
eth: "0xd252acb058e77877810c1290564e290a8f9fcab5bc9aca2884ede8a38810cf34",
|
|
282
|
+
sca: "0xe04e46471754b6f48d81c549ecfec09de02733715a63bec02364c6ac7c4dd2dc",
|
|
283
|
+
cetus: "0xe65a73d11c31b2d323ad2b9f6b4bb0a3c0df9c1b212eef66c854941186a5ddc7",
|
|
284
|
+
sol: "0xe84bdb35b790fc7bdd1645122ac6ac0fc904531d6772c9e25904fece322c5f34"
|
|
285
|
+
};
|
|
286
|
+
|
|
270
287
|
// src/models/scallop.ts
|
|
271
288
|
var import_sui_kit13 = require("@scallop-io/sui-kit");
|
|
272
289
|
|
|
@@ -2489,6 +2506,64 @@ var getMarketCoinAmount = async (query, marketCoinName, ownerAddress) => {
|
|
|
2489
2506
|
});
|
|
2490
2507
|
return (0, import_bignumber2.default)(amount).toNumber();
|
|
2491
2508
|
};
|
|
2509
|
+
var getFlashLoanFees = async (query, assetNames) => {
|
|
2510
|
+
const FEE_RATE = 1e4;
|
|
2511
|
+
const missingAssets = [];
|
|
2512
|
+
const assetTypeMap = assetNames.reduce(
|
|
2513
|
+
(prev, curr) => {
|
|
2514
|
+
const assetType = query.utils.parseCoinType(curr).slice(2);
|
|
2515
|
+
prev[assetType] = curr;
|
|
2516
|
+
return prev;
|
|
2517
|
+
},
|
|
2518
|
+
{}
|
|
2519
|
+
);
|
|
2520
|
+
const objIds = assetNames.map((assetName) => {
|
|
2521
|
+
if (!FlashLoanFeeObjectMap[assetName]) {
|
|
2522
|
+
missingAssets.push(assetName);
|
|
2523
|
+
return null;
|
|
2524
|
+
} else {
|
|
2525
|
+
return FlashLoanFeeObjectMap[assetName];
|
|
2526
|
+
}
|
|
2527
|
+
}).filter((t) => !!t);
|
|
2528
|
+
const flashloanFeeObjects = await query.cache.queryGetObjects(objIds, {
|
|
2529
|
+
showContent: true
|
|
2530
|
+
});
|
|
2531
|
+
if (missingAssets.length > 0) {
|
|
2532
|
+
const marketObjectId = query.address.get("core.market");
|
|
2533
|
+
const marketObjectRes = await query.cache.queryGetObject(marketObjectId, {
|
|
2534
|
+
showContent: true
|
|
2535
|
+
});
|
|
2536
|
+
if (marketObjectRes.data?.content?.dataType !== "moveObject")
|
|
2537
|
+
throw new Error("Failed to get market object");
|
|
2538
|
+
const vault = marketObjectRes.data.content.fields.vault;
|
|
2539
|
+
const flashloanFeesTableId = vault.fields.flash_loan_fees.fields.table.fields.id.id;
|
|
2540
|
+
const balanceSheetDynamicFields = await query.cache.queryGetDynamicFields({
|
|
2541
|
+
parentId: flashloanFeesTableId,
|
|
2542
|
+
limit: 50
|
|
2543
|
+
});
|
|
2544
|
+
const dynamicFieldObjectIds = balanceSheetDynamicFields.data.filter((field) => {
|
|
2545
|
+
const assetType = field.name.value.name;
|
|
2546
|
+
return !!assetTypeMap[assetType];
|
|
2547
|
+
}).map((field) => field.objectId);
|
|
2548
|
+
flashloanFeeObjects.push(
|
|
2549
|
+
...await query.cache.queryGetObjects(dynamicFieldObjectIds, {
|
|
2550
|
+
showContent: true
|
|
2551
|
+
})
|
|
2552
|
+
);
|
|
2553
|
+
}
|
|
2554
|
+
return flashloanFeeObjects.reduce(
|
|
2555
|
+
(prev, curr) => {
|
|
2556
|
+
if (curr.content?.dataType === "moveObject") {
|
|
2557
|
+
const objectFields = curr.content.fields;
|
|
2558
|
+
const assetType = curr.content.fields.name.fields.name;
|
|
2559
|
+
const feeNumerator = +objectFields.value;
|
|
2560
|
+
prev[assetTypeMap[assetType]] = feeNumerator / FEE_RATE;
|
|
2561
|
+
}
|
|
2562
|
+
return prev;
|
|
2563
|
+
},
|
|
2564
|
+
{}
|
|
2565
|
+
);
|
|
2566
|
+
};
|
|
2492
2567
|
|
|
2493
2568
|
// src/queries/spoolQuery.ts
|
|
2494
2569
|
var import_utils4 = require("@mysten/sui.js/utils");
|
|
@@ -4415,6 +4490,12 @@ var ScallopQuery = class {
|
|
|
4415
4490
|
async getLoyaltyProgramInfos(veScaKey) {
|
|
4416
4491
|
return await getLoyaltyProgramInformations(this, veScaKey);
|
|
4417
4492
|
}
|
|
4493
|
+
/**
|
|
4494
|
+
* Get flashloan fee for specified assets
|
|
4495
|
+
*/
|
|
4496
|
+
async getFlashLoanFees(assetCoinNames = [...SUPPORT_POOLS]) {
|
|
4497
|
+
return await getFlashLoanFees(this, assetCoinNames);
|
|
4498
|
+
}
|
|
4418
4499
|
};
|
|
4419
4500
|
|
|
4420
4501
|
// src/constants/pyth.ts
|
|
@@ -6972,6 +7053,7 @@ var Scallop = class {
|
|
|
6972
7053
|
ADDRESSES_ID,
|
|
6973
7054
|
API_BASE_URL,
|
|
6974
7055
|
BORROW_FEE_PROTOCOL_ID,
|
|
7056
|
+
FlashLoanFeeObjectMap,
|
|
6975
7057
|
IS_VE_SCA_TEST,
|
|
6976
7058
|
MAX_LOCK_DURATION,
|
|
6977
7059
|
MAX_LOCK_ROUNDS,
|