@suilend/sdk 1.1.15 → 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.js +28 -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
|
@@ -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");
|
|
@@ -146,6 +147,7 @@ class SuilendClient {
|
|
|
146
147
|
createReserve(lendingMarketOwnerCapId, transaction, pythPriceId, coinType, createReserveConfigArgs) {
|
|
147
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
148
149
|
const [config] = (0, functions_4.createReserveConfig)(transaction, createReserveConfigArgs);
|
|
150
|
+
// Assumes the pyth price feed exists
|
|
149
151
|
const priceUpdateData = yield this.pythConnection.getPriceFeedsUpdateData([
|
|
150
152
|
pythPriceId,
|
|
151
153
|
]);
|
|
@@ -316,11 +318,32 @@ class SuilendClient {
|
|
|
316
318
|
reserveArrayIndexToPriceId.set(extraReserveArrayIndex, (0, utils_1.toHex)(new Uint8Array(reserve.priceIdentifier.bytes)));
|
|
317
319
|
}
|
|
318
320
|
const tuples = Array.from(reserveArrayIndexToPriceId.entries()).sort();
|
|
319
|
-
const
|
|
320
|
-
const
|
|
321
|
-
const
|
|
322
|
-
|
|
323
|
-
|
|
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]);
|
|
324
347
|
}
|
|
325
348
|
});
|
|
326
349
|
}
|
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;
|