@suilend/sdk 1.1.14 → 1.1.16
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/client.d.ts +10 -11
- package/client.js +78 -74
- package/constants.d.ts +0 -1
- package/constants.js +1 -16
- package/package.json +1 -1
- package/parsers/lendingMarket.js +1 -13
package/client.d.ts
CHANGED
|
@@ -16,11 +16,10 @@ export declare class SuilendClient {
|
|
|
16
16
|
constructor(lendingMarket: LendingMarket<string>, client: SuiClient);
|
|
17
17
|
static initialize(lendingMarketId: string, lendingMarketType: string, client: SuiClient): Promise<SuilendClient>;
|
|
18
18
|
static initializeWithLendingMarket(lendingMarket: LendingMarket<string>, client: SuiClient): Promise<SuilendClient>;
|
|
19
|
-
static
|
|
20
|
-
static createNewLendingMarket(registryId: string, lendingMarketType: string, transaction: Transaction): Promise<{
|
|
19
|
+
static createNewLendingMarket(registryId: string, lendingMarketType: string, transaction: Transaction): {
|
|
21
20
|
$kind: "NestedResult";
|
|
22
21
|
NestedResult: [number, number];
|
|
23
|
-
}
|
|
22
|
+
};
|
|
24
23
|
static getObligationOwnerCaps(ownerId: string, lendingMarketTypeArgs: string[], client: SuiClient): Promise<ObligationOwnerCap<string>[]>;
|
|
25
24
|
static getObligation(obligationId: string, lendingMarketTypeArgs: string[], client: SuiClient): Promise<Obligation<string>>;
|
|
26
25
|
getObligation(obligationId: string): Promise<Obligation<string>>;
|
|
@@ -31,18 +30,18 @@ export declare class SuilendClient {
|
|
|
31
30
|
cancelReward(lendingMarketOwnerCapId: string, reserveArrayIndex: bigint, isDepositReward: boolean, rewardIndex: bigint, rewardCoinType: string, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
32
31
|
closeReward(lendingMarketOwnerCapId: string, reserveArrayIndex: bigint, isDepositReward: boolean, rewardIndex: bigint, rewardCoinType: string, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
33
32
|
claimReward(obligationOwnerCapId: string, reserveArrayIndex: bigint, rewardIndex: bigint, rewardType: string, side: Side, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
claimRewardAndDeposit(obligationId: string, rewardReserveArrayIndex: bigint, rewardIndex: bigint, rewardType: string, side: Side, depositReserveArrayIndex: bigint, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
34
|
+
claimRewardsAndSendToUser(ownerId: string, rewards: {
|
|
36
35
|
obligationOwnerCapId: string;
|
|
37
36
|
reserveArrayIndex: bigint;
|
|
38
37
|
rewardIndex: bigint;
|
|
39
38
|
rewardType: string;
|
|
40
39
|
side: Side;
|
|
41
|
-
}[], transaction: Transaction):
|
|
40
|
+
}[], transaction: Transaction): void;
|
|
42
41
|
findReserveArrayIndex(coinType: string): bigint;
|
|
43
|
-
updateReserveConfig(
|
|
44
|
-
newObligationOwnerCap(transaction: Transaction, lendingMarketOwnerCapId: string, destinationAddress: string, obligationId: string):
|
|
45
|
-
updateRateLimiterConfig(lendingMarketOwnerCapId: string, transaction: Transaction, newRateLimiterConfigArgs: CreateRateLimiterConfigArgs):
|
|
42
|
+
updateReserveConfig(lendingMarketOwnerCapId: string, transaction: Transaction, coinType: string, createReserveConfigArgs: CreateReserveConfigArgs): import("@mysten/sui/transactions").TransactionResult;
|
|
43
|
+
newObligationOwnerCap(transaction: Transaction, lendingMarketOwnerCapId: string, destinationAddress: string, obligationId: string): void;
|
|
44
|
+
updateRateLimiterConfig(lendingMarketOwnerCapId: string, transaction: Transaction, newRateLimiterConfigArgs: CreateRateLimiterConfigArgs): import("@mysten/sui/transactions").TransactionResult;
|
|
46
45
|
changeReservePriceFeed(lendingMarketOwnerCapId: string, coinType: string, pythPriceId: string, transaction: Transaction): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
47
46
|
createObligation(transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
48
47
|
refreshAll(transaction: Transaction, obligation: Obligation<string>, extraReserveArrayIndex?: bigint): Promise<void>;
|
|
@@ -52,9 +51,9 @@ export declare class SuilendClient {
|
|
|
52
51
|
depositIntoObligation(ownerId: string, coinType: string, value: string, transaction: Transaction, obligationOwnerCapId?: string): Promise<void>;
|
|
53
52
|
depositLiquidityAndGetCTokens(ownerId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
|
|
54
53
|
withdraw(obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
55
|
-
|
|
54
|
+
withdrawAndSendToUser(ownerId: string, obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
|
|
56
55
|
borrow(obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
57
|
-
|
|
56
|
+
borrowAndSendToUser(ownerId: string, obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
|
|
58
57
|
repay(obligationId: string, coinType: string, coin: TransactionObjectInput, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
|
|
59
58
|
repayIntoObligation(ownerId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
|
60
59
|
liquidateAndRedeem(transaction: Transaction, obligation: Obligation<string>, repayCoinType: string, withdrawCoinType: string, repayCoinId: TransactionObjectInput): Promise<import("@mysten/sui/transactions").TransactionResult>;
|
package/client.js
CHANGED
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.SuilendClient = exports.LENDING_MARKET_TYPE = exports.LENDING_MARKET_ID = void 0;
|
|
13
|
+
const transactions_1 = require("@mysten/sui/transactions");
|
|
13
14
|
const utils_1 = require("@mysten/sui/utils");
|
|
14
15
|
const pyth_sui_js_1 = require("@pythnetwork/pyth-sui-js");
|
|
15
16
|
const reified_1 = require("./_generated/_framework/reified");
|
|
@@ -60,31 +61,19 @@ class SuilendClient {
|
|
|
60
61
|
static initializeWithLendingMarket(lendingMarket, client) {
|
|
61
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
62
63
|
const latestPackageId = yield getLatestPackageId(client, SUILEND_UPGRADE_CAP_ID);
|
|
64
|
+
console.log("latestPackageId", latestPackageId);
|
|
63
65
|
(0, suilend_1.setPublishedAt)(latestPackageId);
|
|
64
66
|
return new SuilendClient(lendingMarket, client);
|
|
65
67
|
});
|
|
66
68
|
}
|
|
67
|
-
static hasBetaPass(ownerId, client) {
|
|
68
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
const objs = yield client.getOwnedObjects({
|
|
70
|
-
owner: ownerId,
|
|
71
|
-
filter: {
|
|
72
|
-
StructType: "0x02fb1289eb4e9ef987c6e383be4a9b298ef96d10a3f29060aaef39a0f9ecfbe6::suilend_beta_pass::SuilendBetaPass",
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
return objs.data.length > 0;
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
69
|
static createNewLendingMarket(registryId, lendingMarketType, transaction) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
arguments: [lendingMarket],
|
|
85
|
-
});
|
|
86
|
-
return ownerCap;
|
|
70
|
+
const [ownerCap, lendingMarket] = (0, functions_2.createLendingMarket)(transaction, lendingMarketType, transaction.object(registryId));
|
|
71
|
+
transaction.moveCall({
|
|
72
|
+
target: `0x2::transfer::public_share_object`,
|
|
73
|
+
typeArguments: [`${structs_1.LendingMarket.$typeName}<${lendingMarketType}>}`],
|
|
74
|
+
arguments: [lendingMarket],
|
|
87
75
|
});
|
|
76
|
+
return ownerCap;
|
|
88
77
|
}
|
|
89
78
|
static getObligationOwnerCaps(ownerId, lendingMarketTypeArgs, client) {
|
|
90
79
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -131,7 +120,9 @@ class SuilendClient {
|
|
|
131
120
|
});
|
|
132
121
|
}
|
|
133
122
|
getObligation(obligationId) {
|
|
134
|
-
return
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
return SuilendClient.getObligation(obligationId, this.lendingMarket.$typeArgs, this.client);
|
|
125
|
+
});
|
|
135
126
|
}
|
|
136
127
|
static getLendingMarketOwnerCapId(ownerId, lendingMarketTypeArgs, client) {
|
|
137
128
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -156,6 +147,7 @@ class SuilendClient {
|
|
|
156
147
|
createReserve(lendingMarketOwnerCapId, transaction, pythPriceId, coinType, createReserveConfigArgs) {
|
|
157
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
158
149
|
const [config] = (0, functions_4.createReserveConfig)(transaction, createReserveConfigArgs);
|
|
150
|
+
// Assumes the pyth price feed exists
|
|
159
151
|
const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData([
|
|
160
152
|
pythPriceId,
|
|
161
153
|
]);
|
|
@@ -229,10 +221,10 @@ class SuilendClient {
|
|
|
229
221
|
isDepositReward: transaction.pure.bool(side === types_1.Side.DEPOSIT),
|
|
230
222
|
});
|
|
231
223
|
}
|
|
232
|
-
|
|
224
|
+
claimRewardAndDeposit(obligationId, rewardReserveArrayIndex, rewardIndex, rewardType, side, depositReserveArrayIndex, transaction) {
|
|
233
225
|
return (0, functions_1.claimRewardsAndDeposit)(transaction, [this.lendingMarket.$typeArgs[0], rewardType], {
|
|
234
226
|
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
235
|
-
obligationId,
|
|
227
|
+
obligationId: transaction.pure.id(obligationId),
|
|
236
228
|
clock: transaction.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
237
229
|
rewardReserveId: transaction.pure.u64(rewardReserveArrayIndex),
|
|
238
230
|
rewardIndex: transaction.pure.u64(rewardIndex),
|
|
@@ -240,59 +232,50 @@ class SuilendClient {
|
|
|
240
232
|
depositReserveId: transaction.pure.u64(depositReserveArrayIndex),
|
|
241
233
|
});
|
|
242
234
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
transaction.mergeCoins(mergeCoin, mergeCoins.slice(1));
|
|
256
|
-
}
|
|
257
|
-
transaction.transferObjects([mergeCoin], transaction.pure.address(ownerId));
|
|
235
|
+
claimRewardsAndSendToUser(ownerId, rewards, transaction) {
|
|
236
|
+
const mergeCoinsMap = {};
|
|
237
|
+
for (const reward of rewards) {
|
|
238
|
+
const [claimedCoin] = this.claimReward(reward.obligationOwnerCapId, reward.reserveArrayIndex, reward.rewardIndex, reward.rewardType, reward.side, transaction);
|
|
239
|
+
if (mergeCoinsMap[reward.rewardType] === undefined)
|
|
240
|
+
mergeCoinsMap[reward.rewardType] = [];
|
|
241
|
+
mergeCoinsMap[reward.rewardType].push(claimedCoin);
|
|
242
|
+
}
|
|
243
|
+
for (const mergeCoins of Object.values(mergeCoinsMap)) {
|
|
244
|
+
const mergeCoin = mergeCoins[0];
|
|
245
|
+
if (mergeCoins.length > 1) {
|
|
246
|
+
transaction.mergeCoins(mergeCoin, mergeCoins.slice(1));
|
|
258
247
|
}
|
|
259
|
-
|
|
248
|
+
transaction.transferObjects([mergeCoin], transaction.pure.address(ownerId));
|
|
249
|
+
}
|
|
260
250
|
}
|
|
261
251
|
findReserveArrayIndex(coinType) {
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
return BigInt(array_index);
|
|
252
|
+
const arrayIndex = this.lendingMarket.reserves.findIndex((r) => (0, utils_1.normalizeStructTag)(r.coinType.name) === (0, utils_1.normalizeStructTag)(coinType));
|
|
253
|
+
return BigInt(arrayIndex);
|
|
265
254
|
}
|
|
266
|
-
updateReserveConfig(
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
config: transaction.object(config),
|
|
274
|
-
});
|
|
255
|
+
updateReserveConfig(lendingMarketOwnerCapId, transaction, coinType, createReserveConfigArgs) {
|
|
256
|
+
const [config] = (0, functions_4.createReserveConfig)(transaction, createReserveConfigArgs);
|
|
257
|
+
return (0, functions_1.updateReserveConfig)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
258
|
+
lendingMarketOwnerCap: transaction.object(lendingMarketOwnerCapId),
|
|
259
|
+
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
260
|
+
reserveArrayIndex: transaction.pure.u64(this.findReserveArrayIndex(coinType)),
|
|
261
|
+
config: transaction.object(config),
|
|
275
262
|
});
|
|
276
263
|
}
|
|
277
264
|
newObligationOwnerCap(transaction, lendingMarketOwnerCapId, destinationAddress, obligationId) {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
obligationId,
|
|
283
|
-
});
|
|
284
|
-
transaction.transferObjects([obligationOwnerCap], transaction.pure.address(destinationAddress));
|
|
265
|
+
const [obligationOwnerCap] = (0, functions_1.newObligationOwnerCap)(transaction, this.lendingMarket.$typeArgs[0], {
|
|
266
|
+
lendingMarketOwnerCap: transaction.object(lendingMarketOwnerCapId),
|
|
267
|
+
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
268
|
+
obligationId: transaction.pure.id(obligationId),
|
|
285
269
|
});
|
|
270
|
+
transaction.transferObjects([obligationOwnerCap], transaction.pure.address(destinationAddress));
|
|
286
271
|
}
|
|
287
272
|
updateRateLimiterConfig(lendingMarketOwnerCapId, transaction, newRateLimiterConfigArgs) {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
config: transaction.object(config),
|
|
295
|
-
});
|
|
273
|
+
const [config] = (0, functions_3.newConfig)(transaction, newRateLimiterConfigArgs);
|
|
274
|
+
return (0, functions_1.updateRateLimiterConfig)(transaction, this.lendingMarket.$typeArgs[0], {
|
|
275
|
+
lendingMarketOwnerCap: transaction.object(lendingMarketOwnerCapId),
|
|
276
|
+
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
277
|
+
clock: transaction.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
278
|
+
config: transaction.object(config),
|
|
296
279
|
});
|
|
297
280
|
}
|
|
298
281
|
changeReservePriceFeed(lendingMarketOwnerCapId, coinType, pythPriceId, transaction) {
|
|
@@ -335,11 +318,32 @@ class SuilendClient {
|
|
|
335
318
|
reserveArrayIndexToPriceId.set(extraReserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
336
319
|
}
|
|
337
320
|
const tuples = Array.from(reserveArrayIndexToPriceId.entries()).sort();
|
|
338
|
-
const
|
|
339
|
-
const
|
|
340
|
-
const
|
|
341
|
-
|
|
342
|
-
|
|
321
|
+
const reserveArrayIndexes = tuples.map((tuple) => tuple[0]);
|
|
322
|
+
const priceIdentifiers = tuples.map((tuple) => tuple[1]);
|
|
323
|
+
const stale_priceIdentifiers = [];
|
|
324
|
+
const priceFeeds = yield this.pythConnection.getLatestPriceFeeds(priceIdentifiers);
|
|
325
|
+
if (priceFeeds === undefined)
|
|
326
|
+
stale_priceIdentifiers.push(...priceIdentifiers);
|
|
327
|
+
else {
|
|
328
|
+
for (let i = 0; i < priceFeeds.length; i++) {
|
|
329
|
+
if (!priceFeeds[i])
|
|
330
|
+
stale_priceIdentifiers.push(priceIdentifiers[i]);
|
|
331
|
+
else {
|
|
332
|
+
const price = priceFeeds[i].getPriceNoOlderThan(30);
|
|
333
|
+
const emaPrice = priceFeeds[i].getEmaPriceNoOlderThan(30);
|
|
334
|
+
if (price === undefined || emaPrice === undefined)
|
|
335
|
+
stale_priceIdentifiers.push(priceIdentifiers[i]);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData(priceIdentifiers);
|
|
340
|
+
const priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(new transactions_1.Transaction(), priceUpdateData, priceIdentifiers);
|
|
341
|
+
if (stale_priceIdentifiers.length > 0) {
|
|
342
|
+
const stale_priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData(stale_priceIdentifiers);
|
|
343
|
+
yield this.pythClient.updatePriceFeeds(transaction, stale_priceUpdateData, stale_priceIdentifiers);
|
|
344
|
+
}
|
|
345
|
+
for (let i = 0; i < reserveArrayIndexes.length; i++) {
|
|
346
|
+
this.refreshReservePrices(transaction, priceInfoObjectIds[i], reserveArrayIndexes[i]);
|
|
343
347
|
}
|
|
344
348
|
});
|
|
345
349
|
}
|
|
@@ -454,7 +458,7 @@ class SuilendClient {
|
|
|
454
458
|
});
|
|
455
459
|
});
|
|
456
460
|
}
|
|
457
|
-
|
|
461
|
+
withdrawAndSendToUser(ownerId, obligationOwnerCapId, obligationId, coinType, value, transaction) {
|
|
458
462
|
return __awaiter(this, void 0, void 0, function* () {
|
|
459
463
|
const [withdrawCoin] = yield this.withdraw(obligationOwnerCapId, obligationId, coinType, value, transaction);
|
|
460
464
|
transaction.transferObjects([withdrawCoin], transaction.pure.address(ownerId));
|
|
@@ -476,7 +480,7 @@ class SuilendClient {
|
|
|
476
480
|
return result;
|
|
477
481
|
});
|
|
478
482
|
}
|
|
479
|
-
|
|
483
|
+
borrowAndSendToUser(ownerId, obligationOwnerCapId, obligationId, coinType, value, transaction) {
|
|
480
484
|
return __awaiter(this, void 0, void 0, function* () {
|
|
481
485
|
const [borrowCoin] = yield this.borrow(obligationOwnerCapId, obligationId, coinType, value, transaction);
|
|
482
486
|
transaction.transferObjects([borrowCoin], transaction.pure.address(ownerId));
|
|
@@ -486,7 +490,7 @@ class SuilendClient {
|
|
|
486
490
|
return (0, functions_1.repay)(transaction, [this.lendingMarket.$typeArgs[0], coinType], {
|
|
487
491
|
lendingMarket: transaction.object(this.lendingMarket.id),
|
|
488
492
|
reserveArrayIndex: transaction.pure.u64(this.findReserveArrayIndex(coinType)),
|
|
489
|
-
obligationId: obligationId,
|
|
493
|
+
obligationId: transaction.pure.id(obligationId),
|
|
490
494
|
clock: transaction.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
491
495
|
maxRepayCoins: coin,
|
|
492
496
|
});
|
|
@@ -504,7 +508,7 @@ class SuilendClient {
|
|
|
504
508
|
}
|
|
505
509
|
const [sendCoin] = transaction.splitCoins(isSui ? transaction.gas : transaction.object(mergeCoin.coinObjectId), [value]);
|
|
506
510
|
const result = this.repay(obligationId, coinType, sendCoin, transaction);
|
|
507
|
-
transaction.transferObjects([sendCoin], ownerId);
|
|
511
|
+
transaction.transferObjects([sendCoin], transaction.pure.address(ownerId));
|
|
508
512
|
return result;
|
|
509
513
|
});
|
|
510
514
|
}
|
package/constants.d.ts
CHANGED
package/constants.js
CHANGED
|
@@ -3,22 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.WAD = exports.maxU64 = void 0;
|
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
8
|
exports.maxU64 = new bignumber_js_1.default(2).pow(64).minus(1);
|
|
9
9
|
exports.WAD = new bignumber_js_1.default(10).pow(18);
|
|
10
|
-
exports.RESERVES_CUSTOM_ORDER = [
|
|
11
|
-
"sSUI",
|
|
12
|
-
"mSUI",
|
|
13
|
-
"SUI",
|
|
14
|
-
"USDC",
|
|
15
|
-
"wUSDC",
|
|
16
|
-
"USDT",
|
|
17
|
-
"suiETH",
|
|
18
|
-
"WETH",
|
|
19
|
-
"SOL",
|
|
20
|
-
"AUSD",
|
|
21
|
-
"DEEP",
|
|
22
|
-
"FUD",
|
|
23
|
-
"HIPPO",
|
|
24
|
-
];
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@suilend/sdk","version":"1.1.
|
|
1
|
+
{"name":"@suilend/sdk","version":"1.1.16","private":false,"description":"A TypeScript SDK for interacting with the Suilend program","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./client":"./client.js","./constants":"./constants.js","./types":"./types.js","./api/events":"./api/events.js","./api":"./api/index.js","./parsers/apiReserveAssetDataEvent":"./parsers/apiReserveAssetDataEvent.js","./parsers":"./parsers/index.js","./parsers/lendingMarket":"./parsers/lendingMarket.js","./parsers/obligation":"./parsers/obligation.js","./parsers/rateLimiter":"./parsers/rateLimiter.js","./parsers/reserve":"./parsers/reserve.js","./utils/events":"./utils/events.js","./utils":"./utils/index.js","./utils/obligation":"./utils/obligation.js","./utils/simulate":"./utils/simulate.js","./_generated/_framework/reified":"./_generated/_framework/reified.js","./_generated/_framework/util":"./_generated/_framework/util.js","./_generated/_framework/vector":"./_generated/_framework/vector.js","./_generated/suilend":"./_generated/suilend/index.js","./_generated/suilend/cell/structs":"./_generated/suilend/cell/structs.js","./_generated/suilend/decimal/structs":"./_generated/suilend/decimal/structs.js","./_generated/suilend/lending-market/functions":"./_generated/suilend/lending-market/functions.js","./_generated/suilend/lending-market/structs":"./_generated/suilend/lending-market/structs.js","./_generated/suilend/lending-market-registry/functions":"./_generated/suilend/lending-market-registry/functions.js","./_generated/suilend/liquidity-mining/structs":"./_generated/suilend/liquidity-mining/structs.js","./_generated/suilend/obligation/structs":"./_generated/suilend/obligation/structs.js","./_generated/suilend/rate-limiter/functions":"./_generated/suilend/rate-limiter/functions.js","./_generated/suilend/rate-limiter/structs":"./_generated/suilend/rate-limiter/structs.js","./_generated/suilend/reserve/structs":"./_generated/suilend/reserve/structs.js","./_generated/suilend/reserve-config/functions":"./_generated/suilend/reserve-config/functions.js","./_generated/suilend/reserve-config/structs":"./_generated/suilend/reserve-config/structs.js","./_generated/_dependencies/source/0x1":"./_generated/_dependencies/source/0x1/index.js","./_generated/_dependencies/source/0x2":"./_generated/_dependencies/source/0x2/index.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js","./_generated/_dependencies/source/0x1/ascii/structs":"./_generated/_dependencies/source/0x1/ascii/structs.js","./_generated/_dependencies/source/0x1/option/structs":"./_generated/_dependencies/source/0x1/option/structs.js","./_generated/_dependencies/source/0x1/type-name/structs":"./_generated/_dependencies/source/0x1/type-name/structs.js","./_generated/_dependencies/source/0x2/bag/structs":"./_generated/_dependencies/source/0x2/bag/structs.js","./_generated/_dependencies/source/0x2/balance/structs":"./_generated/_dependencies/source/0x2/balance/structs.js","./_generated/_dependencies/source/0x2/object/structs":"./_generated/_dependencies/source/0x2/object/structs.js","./_generated/_dependencies/source/0x2/object-table/structs":"./_generated/_dependencies/source/0x2/object-table/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix \"./src/**/*.ts\"","prettier":"prettier --write \"./src/**/*\"","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ts-node ./release.ts && cd ./dist && npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/solendprotocol/suilend-public.git"},"bugs":{"url":"https://github.com/solendprotocol/suilend-public/issues"},"dependencies":{"@mysten/bcs":"1.1.0","@mysten/sui":"1.14.2","@pythnetwork/pyth-sui-js":"^2.1.0","bignumber.js":"^9.1.2","p-limit":"^3.1.0","uuid":"^9.0.1"},"devDependencies":{"ts-node":"^10.9.2"}}
|
package/parsers/lendingMarket.js
CHANGED
|
@@ -5,24 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.parseLendingMarket = void 0;
|
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
-
const constants_1 = require("../constants");
|
|
9
8
|
const rateLimiter_1 = require("./rateLimiter");
|
|
10
9
|
const reserve_1 = require("./reserve");
|
|
11
10
|
const parseLendingMarket = (lendingMarket, reserves, coinMetadataMap, currentTime) => {
|
|
12
11
|
const id = lendingMarket.id;
|
|
13
12
|
const version = lendingMarket.version;
|
|
14
|
-
const parsedReserves = reserves
|
|
15
|
-
.map((reserve) => (0, reserve_1.parseReserve)(reserve, coinMetadataMap))
|
|
16
|
-
.sort((a, b) => {
|
|
17
|
-
const aCustomOrderIndex = constants_1.RESERVES_CUSTOM_ORDER.indexOf(a.symbol);
|
|
18
|
-
const bCustomOrderIndex = constants_1.RESERVES_CUSTOM_ORDER.indexOf(b.symbol);
|
|
19
|
-
if (aCustomOrderIndex > -1 && bCustomOrderIndex > -1)
|
|
20
|
-
return aCustomOrderIndex - bCustomOrderIndex;
|
|
21
|
-
else if (aCustomOrderIndex === -1 && bCustomOrderIndex === -1)
|
|
22
|
-
return 0;
|
|
23
|
-
else
|
|
24
|
-
return aCustomOrderIndex > -1 ? -1 : 1;
|
|
25
|
-
});
|
|
13
|
+
const parsedReserves = reserves.map((reserve) => (0, reserve_1.parseReserve)(reserve, coinMetadataMap));
|
|
26
14
|
const obligations = lendingMarket.obligations;
|
|
27
15
|
const parsedRateLimiter = (0, rateLimiter_1.parseRateLimiter)(lendingMarket.rateLimiter, currentTime);
|
|
28
16
|
const feeReceiver = lendingMarket.feeReceiver;
|