@suilend/sdk 1.1.15 → 1.1.17
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.js +35 -5
- package/constants.d.ts +0 -1
- package/constants.js +1 -16
- package/package.json +1 -1
- package/parsers/lendingMarket.js +1 -13
package/client.js
CHANGED
|
@@ -146,6 +146,7 @@ class SuilendClient {
|
|
|
146
146
|
createReserve(lendingMarketOwnerCapId, transaction, pythPriceId, coinType, createReserveConfigArgs) {
|
|
147
147
|
return __awaiter(this, void 0, void 0, function* () {
|
|
148
148
|
const [config] = (0, functions_4.createReserveConfig)(transaction, createReserveConfigArgs);
|
|
149
|
+
// Assumes the pyth price feed exists
|
|
149
150
|
const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData([
|
|
150
151
|
pythPriceId,
|
|
151
152
|
]);
|
|
@@ -316,11 +317,40 @@ class SuilendClient {
|
|
|
316
317
|
reserveArrayIndexToPriceId.set(extraReserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
317
318
|
}
|
|
318
319
|
const tuples = Array.from(reserveArrayIndexToPriceId.entries()).sort();
|
|
319
|
-
const
|
|
320
|
-
const
|
|
321
|
-
const
|
|
322
|
-
|
|
323
|
-
|
|
320
|
+
const reserveArrayIndexes = tuples.map((tuple) => tuple[0]);
|
|
321
|
+
const priceIdentifiers = tuples.map((tuple) => tuple[1]);
|
|
322
|
+
// const stale_priceIdentifiers = [];
|
|
323
|
+
// const priceFeeds =
|
|
324
|
+
// await 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]) stale_priceIdentifiers.push(priceIdentifiers[i]);
|
|
330
|
+
// else {
|
|
331
|
+
// const price = priceFeeds[i].getPriceNoOlderThan(10);
|
|
332
|
+
// const emaPrice = priceFeeds[i].getEmaPriceNoOlderThan(10);
|
|
333
|
+
// if (price === undefined || emaPrice === undefined)
|
|
334
|
+
// stale_priceIdentifiers.push(priceIdentifiers[i]);
|
|
335
|
+
// }
|
|
336
|
+
// }
|
|
337
|
+
// }
|
|
338
|
+
const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData(priceIdentifiers);
|
|
339
|
+
const priceInfoObjectIds = yield this.pythClient.updatePriceFeeds(transaction, // new Transaction(),
|
|
340
|
+
priceUpdateData, priceIdentifiers);
|
|
341
|
+
// if (stale_priceIdentifiers.length > 0) {
|
|
342
|
+
// const stale_priceUpdateData =
|
|
343
|
+
// await this.pythConnection.getPriceFeedsUpdateData(
|
|
344
|
+
// stale_priceIdentifiers,
|
|
345
|
+
// );
|
|
346
|
+
// await this.pythClient.updatePriceFeeds(
|
|
347
|
+
// transaction as any,
|
|
348
|
+
// stale_priceUpdateData,
|
|
349
|
+
// stale_priceIdentifiers,
|
|
350
|
+
// );
|
|
351
|
+
// }
|
|
352
|
+
for (let i = 0; i < reserveArrayIndexes.length; i++) {
|
|
353
|
+
this.refreshReservePrices(transaction, priceInfoObjectIds[i], reserveArrayIndexes[i]);
|
|
324
354
|
}
|
|
325
355
|
});
|
|
326
356
|
}
|
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.17","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.3","@pythnetwork/pyth-sui-js":"^2.1.0","bignumber.js":"^9.1.2","p-limit":"^6.1.0","uuid":"^11.0.3"},"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;
|