@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 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 hasBetaPass(ownerId: string, client: SuiClient): Promise<boolean>;
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
- claimRewardsAndDeposit(obligationId: string, rewardReserveArrayIndex: bigint, rewardIndex: bigint, rewardType: string, side: Side, depositReserveArrayIndex: bigint, transaction: Transaction): import("@mysten/sui/transactions").TransactionResult;
35
- claimRewardsToObligation(ownerId: string, rewards: {
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): Promise<void>;
40
+ }[], transaction: Transaction): void;
42
41
  findReserveArrayIndex(coinType: string): bigint;
43
- updateReserveConfig(ownerId: string, lendingMarketOwnerCapId: string, transaction: Transaction, coinType: string, createReserveConfigArgs: CreateReserveConfigArgs): Promise<import("@mysten/sui/transactions").TransactionResult>;
44
- newObligationOwnerCap(transaction: Transaction, lendingMarketOwnerCapId: string, destinationAddress: string, obligationId: string): Promise<void>;
45
- updateRateLimiterConfig(lendingMarketOwnerCapId: string, transaction: Transaction, newRateLimiterConfigArgs: CreateRateLimiterConfigArgs): Promise<import("@mysten/sui/transactions").TransactionResult>;
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
- withdrawFromObligation(ownerId: string, obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
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
- borrowFromObligation(ownerId: string, obligationOwnerCapId: string, obligationId: string, coinType: string, value: string, transaction: Transaction): Promise<void>;
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
- return __awaiter(this, void 0, void 0, function* () {
80
- const [ownerCap, lendingMarket] = (0, functions_2.createLendingMarket)(transaction, lendingMarketType, transaction.object(registryId));
81
- transaction.moveCall({
82
- target: `0x2::transfer::public_share_object`,
83
- typeArguments: [`${structs_1.LendingMarket.$typeName}<${lendingMarketType}>}`],
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 SuilendClient.getObligation(obligationId, this.lendingMarket.$typeArgs, this.client);
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
- claimRewardsAndDeposit(obligationId, rewardReserveArrayIndex, rewardIndex, rewardType, side, depositReserveArrayIndex, transaction) {
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
- claimRewardsToObligation(ownerId, rewards, transaction) {
244
- return __awaiter(this, void 0, void 0, function* () {
245
- const mergeCoinsMap = {};
246
- for (const reward of rewards) {
247
- const [claimedCoin] = this.claimReward(reward.obligationOwnerCapId, reward.reserveArrayIndex, reward.rewardIndex, reward.rewardType, reward.side, transaction);
248
- if (mergeCoinsMap[reward.rewardType] === undefined)
249
- mergeCoinsMap[reward.rewardType] = [];
250
- mergeCoinsMap[reward.rewardType].push(claimedCoin);
251
- }
252
- for (const mergeCoins of Object.values(mergeCoinsMap)) {
253
- const mergeCoin = mergeCoins[0];
254
- if (mergeCoins.length > 1) {
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 normalizedCoinType = (0, utils_1.normalizeStructTag)(coinType);
263
- const array_index = this.lendingMarket.reserves.findIndex((r) => (0, utils_1.normalizeStructTag)(r.coinType.name) == normalizedCoinType);
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(ownerId, lendingMarketOwnerCapId, transaction, coinType, createReserveConfigArgs) {
267
- return __awaiter(this, void 0, void 0, function* () {
268
- const [config] = (0, functions_4.createReserveConfig)(transaction, createReserveConfigArgs);
269
- return (0, functions_1.updateReserveConfig)(transaction, [...this.lendingMarket.$typeArgs, coinType], {
270
- lendingMarketOwnerCap: transaction.object(lendingMarketOwnerCapId),
271
- lendingMarket: transaction.object(this.lendingMarket.id),
272
- reserveArrayIndex: transaction.pure.u64(this.findReserveArrayIndex(coinType)),
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
- return __awaiter(this, void 0, void 0, function* () {
279
- const [obligationOwnerCap] = (0, functions_1.newObligationOwnerCap)(transaction, this.lendingMarket.$typeArgs[0], {
280
- lendingMarketOwnerCap: transaction.object(lendingMarketOwnerCapId),
281
- lendingMarket: transaction.object(this.lendingMarket.id),
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
- return __awaiter(this, void 0, void 0, function* () {
289
- const [config] = (0, functions_3.newConfig)(transaction, newRateLimiterConfigArgs);
290
- return (0, functions_1.updateRateLimiterConfig)(transaction, this.lendingMarket.$typeArgs[0], {
291
- lendingMarketOwnerCap: transaction.object(lendingMarketOwnerCapId),
292
- lendingMarket: transaction.object(this.lendingMarket.id),
293
- clock: transaction.object(utils_1.SUI_CLOCK_OBJECT_ID),
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 priceIds = Array.from(tuples.map((tuple) => tuple[1]));
339
- const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData(priceIds);
340
- const priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(transaction, priceUpdateData, priceIds);
341
- for (let i = 0; i < tuples.length; i++) {
342
- this.refreshReservePrices(transaction, priceInfoObjectIds[i], tuples[i][0]);
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
- withdrawFromObligation(ownerId, obligationOwnerCapId, obligationId, coinType, value, transaction) {
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
- borrowFromObligation(ownerId, obligationOwnerCapId, obligationId, coinType, value, transaction) {
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
@@ -1,4 +1,3 @@
1
1
  import BigNumber from "bignumber.js";
2
2
  export declare const maxU64: BigNumber;
3
3
  export declare const WAD: BigNumber;
4
- export declare const RESERVES_CUSTOM_ORDER: string[];
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.RESERVES_CUSTOM_ORDER = exports.WAD = exports.maxU64 = void 0;
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.14","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"}}
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"}}
@@ -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;