@suilend/sdk 13.1.0-next.g1db8a54 → 13.1.0
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/lib/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@suilend/sdk","version":"13.1.0
|
|
1
|
+
{"name":"@suilend/sdk","version":"13.1.0","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","./mmt":"./mmt.js","./strategies":"./strategies.js","./api/events":"./api/events.js","./api":"./api/index.js","./lib/constants":"./lib/constants.js","./lib":"./lib/index.js","./lib/initialize":"./lib/initialize.js","./lib/liquidityMining":"./lib/liquidityMining.js","./lib/proCompatible":"./lib/proCompatible.js","./lib/pyth":"./lib/pyth.js","./lib/strategyOwnerCap":"./lib/strategyOwnerCap.js","./lib/transactions":"./lib/transactions.js","./lib/types":"./lib/types.js","./margin":"./margin/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","./swap":"./swap/index.js","./swap/quote":"./swap/quote.js","./swap/transaction":"./swap/transaction.js","./utils/events":"./utils/events.js","./utils/feedId":"./utils/feedId.js","./utils":"./utils/index.js","./utils/obligation":"./utils/obligation.js","./utils/simulate":"./utils/simulate.js","./_generated/_envs":"./_generated/_envs/index.js","./_generated/_envs/mainnet":"./_generated/_envs/mainnet.js","./_generated/_framework/env":"./_generated/_framework/env.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","./margin/margin/admin_cap":"./margin/margin/admin_cap.js","./margin/margin/market":"./margin/margin/market.js","./margin/margin/permissions":"./margin/margin/permissions.js","./margin/margin/position":"./margin/margin/position.js","./margin/margin/router":"./margin/margin/router.js","./margin/margin/version":"./margin/margin/version.js","./margin/utils":"./margin/utils/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/pyth-2/price-identifier/structs":"./_generated/_dependencies/pyth-2/price-identifier/structs.js","./_generated/_dependencies/std/ascii/structs":"./_generated/_dependencies/std/ascii/structs.js","./_generated/_dependencies/std/option/structs":"./_generated/_dependencies/std/option/structs.js","./_generated/_dependencies/std/type-name/structs":"./_generated/_dependencies/std/type-name/structs.js","./_generated/_dependencies/sui/bag/structs":"./_generated/_dependencies/sui/bag/structs.js","./_generated/_dependencies/sui/balance/structs":"./_generated/_dependencies/sui/balance/structs.js","./_generated/_dependencies/sui/object/structs":"./_generated/_dependencies/sui/object/structs.js","./_generated/_dependencies/sui/object-table/structs":"./_generated/_dependencies/sui/object-table/structs.js","./margin/margin/deps/std/type_name":"./margin/margin/deps/std/type_name.js","./margin/margin/deps/sui/vec_set":"./margin/margin/deps/sui/vec_set.js","./margin/margin/deps/suilend/lending_market":"./margin/margin/deps/suilend/lending_market.js"},"types":"./index.d.ts","scripts":{"codegen":"node ./codegen.js","codegen:install":"node ./install-codegen.js","build":"rm -rf ./dist && tsc && node ./fix-esm-imports.js","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json","test":"vitest run","lint:ci":"yarn run typecheck","prettier":"prettier --write src/ tests/","release":"yarn run build && node ./release.js && cd ./dist && npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/fireflyprotocol/lending-mono.git","directory":"ts/sdks/sdk"},"dependencies":{"@bluefin-exchange/bluefin7k-aggregator-sdk":"7.6.3","@cetusprotocol/aggregator-sdk":"1.7.3","@flowx-finance/sdk":"2.1.0","@pythnetwork/hermes-client":"3.1.0","@pythnetwork/pyth-sui-js":"4.0.0","@suilend/springsui-sdk":"4.1.0","bignumber.js":"11.1.5","bn.js":"5.2.5","crypto-js":"4.2.0","lodash":"4.18.1","p-limit":"7.3.3","uuid":"14.0.2"},"devDependencies":{"@mysten/bcs":"2.1.1","@mysten/sui":"2.29.0","@suilend/sui-core":"2.1.0","@tsconfig/recommended":"1.0.13","@types/bn.js":"5.2.0","@types/lodash":"4.17.25","@types/node":"26.5.1","fast-check":"4.10.2","prettier":"3.9.9","ts-node":"10.9.2","typescript":"6.0.3","vite":"8.3.0","vitest":"5.0.1"},"peerDependencies":{"@mysten/bcs":"^2.1.1","@mysten/sui":">=2.22.1 <3","@suilend/sui-core":"^2.0.1"},"type":"module"}
|
|
@@ -2,7 +2,7 @@ import BigNumber from "bignumber.js";
|
|
|
2
2
|
import { ApiReserveAssetDataEvent, DownsampledApiReserveAssetDataEvent } from "../lib/types";
|
|
3
3
|
import { ParsedReserve } from "./reserve";
|
|
4
4
|
export type ParsedReserveAssetDataEvent = ReturnType<typeof parseReserveAssetDataEvent>;
|
|
5
|
-
export declare const parseReserveAssetDataEvent: (event: ApiReserveAssetDataEvent, reserve: ParsedReserve) => {
|
|
5
|
+
export declare const parseReserveAssetDataEvent: (event: ApiReserveAssetDataEvent, reserve: ParsedReserve, kBps?: BigNumber) => {
|
|
6
6
|
id: string;
|
|
7
7
|
lendingMarketId: string;
|
|
8
8
|
coinType: string;
|
|
@@ -30,7 +30,7 @@ export declare const parseReserveAssetDataEvent: (event: ApiReserveAssetDataEven
|
|
|
30
30
|
original: ApiReserveAssetDataEvent;
|
|
31
31
|
};
|
|
32
32
|
export type ParsedDownsampledApiReserveAssetDataEvent = ReturnType<typeof parseDownsampledApiReserveAssetDataEvent>;
|
|
33
|
-
export declare const parseDownsampledApiReserveAssetDataEvent: (event: DownsampledApiReserveAssetDataEvent, reserve: ParsedReserve) => {
|
|
33
|
+
export declare const parseDownsampledApiReserveAssetDataEvent: (event: DownsampledApiReserveAssetDataEvent, reserve: ParsedReserve, kBps?: BigNumber) => {
|
|
34
34
|
sampleTimestampS: number;
|
|
35
35
|
id: string;
|
|
36
36
|
lendingMarketId: string;
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { normalizeStructTag } from "@mysten/sui/utils";
|
|
2
2
|
import BigNumber from "bignumber.js";
|
|
3
3
|
import { WAD } from "../lib/constants.js";
|
|
4
|
-
|
|
4
|
+
import { applyConfidenceMargin } from "../utils/simulate.js";
|
|
5
|
+
// Reproduces the exact pre-confidence-margin bounds when a caller doesn't
|
|
6
|
+
// supply the reserve's current multiplier.
|
|
7
|
+
const ZERO_K_BPS = new BigNumber(0);
|
|
8
|
+
export const parseReserveAssetDataEvent = (event, reserve,
|
|
9
|
+
// The reserve's CURRENT confidence multiplier, not one frozen at the time
|
|
10
|
+
// this event was recorded -- k is a live risk parameter, not price history.
|
|
11
|
+
kBps = ZERO_K_BPS) => {
|
|
5
12
|
const availableAmount = new BigNumber(event.availableAmount)
|
|
6
13
|
.div(WAD)
|
|
7
14
|
.div(10 ** reserve.mintDecimals);
|
|
@@ -20,8 +27,10 @@ export const parseReserveAssetDataEvent = (event, reserve) => {
|
|
|
20
27
|
const cumulativeBorrowRate = new BigNumber(event.cumulativeBorrowRate).div(WAD);
|
|
21
28
|
const price = new BigNumber(event.price).div(WAD);
|
|
22
29
|
const smoothedPrice = new BigNumber(event.smoothedPrice).div(WAD);
|
|
23
|
-
|
|
24
|
-
|
|
30
|
+
// Null conf (a pre-upgrade event) has no margin to apply -- 0 reproduces
|
|
31
|
+
// plain min/max exactly, same as kBps=0 does.
|
|
32
|
+
const conf = event.conf ? new BigNumber(event.conf).div(WAD) : new BigNumber(0);
|
|
33
|
+
const { lowerBound: minPrice, upperBound: maxPrice } = applyConfidenceMargin(price, smoothedPrice, conf, kBps);
|
|
25
34
|
// Custom
|
|
26
35
|
const utilizationPercent = depositedAmount.eq(0)
|
|
27
36
|
? new BigNumber(0)
|
|
@@ -54,9 +63,9 @@ export const parseReserveAssetDataEvent = (event, reserve) => {
|
|
|
54
63
|
original: event,
|
|
55
64
|
};
|
|
56
65
|
};
|
|
57
|
-
export const parseDownsampledApiReserveAssetDataEvent = (event, reserve) => {
|
|
66
|
+
export const parseDownsampledApiReserveAssetDataEvent = (event, reserve, kBps = ZERO_K_BPS) => {
|
|
58
67
|
return {
|
|
59
|
-
...parseReserveAssetDataEvent(event, reserve),
|
|
68
|
+
...parseReserveAssetDataEvent(event, reserve, kBps),
|
|
60
69
|
sampleTimestampS: event.sampletimestamp,
|
|
61
70
|
};
|
|
62
71
|
};
|