@suilend/sdk 1.1.7 → 1.1.8
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/{mainnet/_generated → _generated}/_dependencies/source/0x1/ascii/structs.js +3 -3
- package/{mainnet/_generated → _generated}/_dependencies/source/0x1/option/structs.d.ts +1 -1
- package/{mainnet/_generated → _generated}/_dependencies/source/0x1/option/structs.js +2 -2
- package/{mainnet/_generated → _generated}/_dependencies/source/0x1/type-name/structs.js +2 -2
- package/{mainnet/_generated → _generated}/_dependencies/source/0x2/bag/structs.js +2 -2
- package/{mainnet/_generated → _generated}/_dependencies/source/0x2/balance/structs.js +3 -3
- package/{mainnet/_generated → _generated}/_dependencies/source/0x2/object/structs.js +3 -3
- package/{mainnet/_generated → _generated}/_dependencies/source/0x2/object-table/structs.js +2 -2
- package/{mainnet/_generated → _generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js +2 -2
- package/{mainnet/_generated → _generated}/_framework/reified.js +10 -10
- package/{mainnet/_generated → _generated}/_framework/util.d.ts +5 -11
- package/{mainnet/_generated → _generated}/_framework/util.js +12 -13
- package/{mainnet/_generated → _generated}/_framework/vector.d.ts +1 -1
- package/{mainnet/_generated → _generated}/_framework/vector.js +2 -2
- package/{mainnet/_generated → _generated}/suilend/cell/structs.d.ts +1 -1
- package/{mainnet/_generated → _generated}/suilend/cell/structs.js +2 -2
- package/{mainnet/_generated → _generated}/suilend/decimal/structs.js +2 -2
- package/{mainnet/_generated → _generated}/suilend/index.d.ts +2 -1
- package/{mainnet/_generated → _generated}/suilend/index.js +4 -0
- package/{mainnet/_generated → _generated}/suilend/lending-market/functions.js +32 -33
- package/{mainnet/_generated → _generated}/suilend/lending-market/structs.js +15 -15
- package/{mainnet/_generated → _generated}/suilend/lending-market-registry/functions.js +2 -3
- package/{mainnet/_generated → _generated}/suilend/liquidity-mining/structs.js +6 -6
- package/{mainnet/_generated → _generated}/suilend/obligation/structs.js +7 -7
- package/{mainnet/_generated → _generated}/suilend/rate-limiter/functions.js +6 -7
- package/{mainnet/_generated → _generated}/suilend/rate-limiter/structs.js +3 -3
- package/{mainnet/_generated → _generated}/suilend/reserve/structs.js +7 -7
- package/{mainnet/_generated → _generated}/suilend/reserve-config/functions.js +39 -40
- package/{mainnet/_generated → _generated}/suilend/reserve-config/structs.js +3 -3
- package/api/index.d.ts +1 -0
- package/{mainnet/utils.js → api/index.js} +1 -1
- package/client.d.ts +65 -0
- package/{core/client.js → client.js} +176 -178
- package/{core/constants.d.ts → constants.d.ts} +0 -4
- package/{core/constants.js → constants.js} +1 -6
- package/index.d.ts +7 -1
- package/index.js +7 -1
- package/package.json +1 -1
- package/{mainnet/parsers → parsers}/index.d.ts +1 -0
- package/{mainnet/parsers → parsers}/index.js +1 -0
- package/{core/parsers → parsers}/lendingMarket.d.ts +38 -37
- package/{core/parsers → parsers}/lendingMarket.js +15 -4
- package/{core/parsers → parsers}/obligation.d.ts +60 -60
- package/{core/parsers → parsers}/obligation.js +5 -3
- package/{mainnet/parsers → parsers}/rateLimiter.d.ts +10 -9
- package/{core/parsers → parsers}/rateLimiter.js +3 -3
- package/{core/parsers → parsers}/reserve.d.ts +47 -46
- package/{core/parsers → parsers}/reserve.js +32 -8
- package/types.d.ts +200 -0
- package/types.js +15 -0
- package/{core/utils → utils}/events.js +3 -3
- package/{mainnet/utils → utils}/obligation.js +5 -6
- package/utils/simulate.js +316 -0
- package/core/client.d.ts +0 -117
- package/core/parsers/deps.d.ts +0 -15
- package/core/parsers/deps.js +0 -2
- package/core/parsers/rateLimiter.d.ts +0 -19
- package/core/types.d.ts +0 -882
- package/core/types.js +0 -132
- package/core/utils/simulate.d.ts +0 -56
- package/core/utils/simulate.js +0 -312
- package/mainnet/api/events.d.ts +0 -1
- package/mainnet/api/events.js +0 -17
- package/mainnet/client.d.ts +0 -18
- package/mainnet/client.js +0 -110
- package/mainnet/constants.d.ts +0 -3
- package/mainnet/constants.js +0 -20
- package/mainnet/index.d.ts +0 -6
- package/mainnet/index.js +0 -22
- package/mainnet/parsers/apiReserveAssetDataEvent.d.ts +0 -1
- package/mainnet/parsers/apiReserveAssetDataEvent.js +0 -17
- package/mainnet/parsers/lendingMarket.d.ts +0 -127
- package/mainnet/parsers/lendingMarket.js +0 -41
- package/mainnet/parsers/obligation.d.ts +0 -10
- package/mainnet/parsers/obligation.js +0 -30
- package/mainnet/parsers/rateLimiter.js +0 -32
- package/mainnet/parsers/reserve.d.ts +0 -166
- package/mainnet/parsers/reserve.js +0 -38
- package/mainnet/types.d.ts +0 -1
- package/mainnet/types.js +0 -17
- package/mainnet/utils/events.d.ts +0 -1
- package/mainnet/utils/events.js +0 -17
- package/mainnet/utils/simulate.js +0 -78
- package/mainnet/utils.d.ts +0 -1
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/ascii/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/index.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/index.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x1/type-name/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/bag/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/balance/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/index.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/index.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/object/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x2/object-table/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js +0 -0
- /package/{mainnet/_generated → _generated}/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/_framework/reified.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/decimal/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/lending-market/functions.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/lending-market/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/lending-market-registry/functions.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/liquidity-mining/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/obligation/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/rate-limiter/functions.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/rate-limiter/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/reserve/structs.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/reserve-config/functions.d.ts +0 -0
- /package/{mainnet/_generated → _generated}/suilend/reserve-config/structs.d.ts +0 -0
- /package/{core/api → api}/events.d.ts +0 -0
- /package/{core/api → api}/events.js +0 -0
- /package/{core/parsers → parsers}/apiReserveAssetDataEvent.d.ts +0 -0
- /package/{core/parsers → parsers}/apiReserveAssetDataEvent.js +0 -0
- /package/{core/utils → utils}/events.d.ts +0 -0
- /package/{mainnet/utils → utils}/index.d.ts +0 -0
- /package/{mainnet/utils → utils}/index.js +0 -0
- /package/{mainnet/utils → utils}/obligation.d.ts +0 -0
- /package/{mainnet/utils → utils}/simulate.d.ts +0 -0
- /package/{core/utils.d.ts → utils.d.ts} +0 -0
- /package/{core/utils.js → utils.js} +0 -0
package/index.js
CHANGED
|
@@ -14,4 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./api"), exports);
|
|
18
|
+
__exportStar(require("./parsers"), exports);
|
|
19
|
+
__exportStar(require("./utils/"), exports);
|
|
20
|
+
__exportStar(require("./client"), exports);
|
|
21
|
+
__exportStar(require("./constants"), exports);
|
|
22
|
+
__exportStar(require("./types"), exports);
|
|
23
|
+
__exportStar(require("./utils"), exports);
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@suilend/sdk","version":"1.1.
|
|
1
|
+
{"name":"@suilend/sdk","version":"1.1.8","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","./utils":"./utils/index.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/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","release":"bun run build && bun ts-node ./prepublish.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"},"homepage":"https://github.com/solendprotocol/suilend-public/tree/HEAD/sdk#readme","dependencies":{"@mysten/bcs":"1.1.0","@mysten/sui":"1.12.0","@pythnetwork/pyth-sui-js":"^2.1.0","bignumber.js":"^9.1.2","p-limit":"3.1.0","uuid":"^9.0.1"},"devDependencies":{"@types/node":"^20.12.7","ts-node":"^10.9.2","typescript":"^5.3.3"}}
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./apiReserveAssetDataEvent"), exports);
|
|
17
18
|
__exportStar(require("./lendingMarket"), exports);
|
|
18
19
|
__exportStar(require("./obligation"), exports);
|
|
19
20
|
__exportStar(require("./rateLimiter"), exports);
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { CoinMetadata } from "@mysten/sui/client";
|
|
2
2
|
import BigNumber from "bignumber.js";
|
|
3
|
-
import {
|
|
3
|
+
import { LendingMarket } from "../_generated/suilend/lending-market/structs";
|
|
4
|
+
import { Reserve } from "../_generated/suilend/reserve/structs";
|
|
4
5
|
export type ParsedLendingMarket = ReturnType<typeof parseLendingMarket>;
|
|
5
|
-
export declare const parseLendingMarket: (
|
|
6
|
-
id:
|
|
7
|
-
version:
|
|
6
|
+
export declare const parseLendingMarket: (lendingMarket: LendingMarket<string>, reserves: Reserve<string>[], coinMetadataMap: Record<string, CoinMetadata>, currentTime: number) => {
|
|
7
|
+
id: string;
|
|
8
|
+
version: bigint;
|
|
8
9
|
reserves: {
|
|
9
10
|
config: {
|
|
10
|
-
$typeName:
|
|
11
|
-
openLtvPct:
|
|
12
|
-
closeLtvPct:
|
|
13
|
-
maxCloseLtvPct:
|
|
11
|
+
$typeName: string;
|
|
12
|
+
openLtvPct: number;
|
|
13
|
+
closeLtvPct: number;
|
|
14
|
+
maxCloseLtvPct: number;
|
|
14
15
|
borrowWeightBps: number;
|
|
15
16
|
depositLimit: BigNumber;
|
|
16
17
|
borrowLimit: BigNumber;
|
|
@@ -30,65 +31,65 @@ export declare const parseLendingMarket: ({ LendingMarket, Reserve, PoolRewardMa
|
|
|
30
31
|
aprPercent: BigNumber;
|
|
31
32
|
}[];
|
|
32
33
|
};
|
|
33
|
-
$typeName:
|
|
34
|
-
id:
|
|
34
|
+
$typeName: string;
|
|
35
|
+
id: string;
|
|
35
36
|
arrayIndex: bigint;
|
|
36
37
|
coinType: string;
|
|
37
|
-
mintDecimals:
|
|
38
|
+
mintDecimals: number;
|
|
38
39
|
priceIdentifier: string;
|
|
39
40
|
price: BigNumber;
|
|
40
41
|
smoothedPrice: BigNumber;
|
|
41
42
|
minPrice: BigNumber;
|
|
42
43
|
maxPrice: BigNumber;
|
|
43
|
-
priceLastUpdateTimestampS:
|
|
44
|
+
priceLastUpdateTimestampS: bigint;
|
|
44
45
|
availableAmount: BigNumber;
|
|
45
46
|
ctokenSupply: BigNumber;
|
|
46
47
|
borrowedAmount: BigNumber;
|
|
47
48
|
cumulativeBorrowRate: BigNumber;
|
|
48
|
-
interestLastUpdateTimestampS:
|
|
49
|
+
interestLastUpdateTimestampS: bigint;
|
|
49
50
|
unclaimedSpreadFees: BigNumber;
|
|
50
51
|
attributedBorrowValue: BigNumber;
|
|
51
52
|
depositsPoolRewardManager: {
|
|
52
|
-
$typeName:
|
|
53
|
-
id:
|
|
54
|
-
totalShares:
|
|
53
|
+
$typeName: string;
|
|
54
|
+
id: string;
|
|
55
|
+
totalShares: bigint;
|
|
55
56
|
poolRewards: {
|
|
56
|
-
$typeName:
|
|
57
|
-
id:
|
|
58
|
-
poolRewardManagerId:
|
|
57
|
+
$typeName: string;
|
|
58
|
+
id: string;
|
|
59
|
+
poolRewardManagerId: string;
|
|
59
60
|
coinType: string;
|
|
60
61
|
startTimeMs: number;
|
|
61
62
|
endTimeMs: number;
|
|
62
63
|
totalRewards: BigNumber;
|
|
63
64
|
allocatedRewards: BigNumber;
|
|
64
65
|
cumulativeRewardsPerShare: BigNumber;
|
|
65
|
-
numUserRewardManagers:
|
|
66
|
+
numUserRewardManagers: bigint;
|
|
66
67
|
rewardIndex: number;
|
|
67
68
|
symbol: string;
|
|
68
69
|
mintDecimals: number;
|
|
69
70
|
}[];
|
|
70
|
-
lastUpdateTimeMs:
|
|
71
|
+
lastUpdateTimeMs: bigint;
|
|
71
72
|
};
|
|
72
73
|
borrowsPoolRewardManager: {
|
|
73
|
-
$typeName:
|
|
74
|
-
id:
|
|
75
|
-
totalShares:
|
|
74
|
+
$typeName: string;
|
|
75
|
+
id: string;
|
|
76
|
+
totalShares: bigint;
|
|
76
77
|
poolRewards: {
|
|
77
|
-
$typeName:
|
|
78
|
-
id:
|
|
79
|
-
poolRewardManagerId:
|
|
78
|
+
$typeName: string;
|
|
79
|
+
id: string;
|
|
80
|
+
poolRewardManagerId: string;
|
|
80
81
|
coinType: string;
|
|
81
82
|
startTimeMs: number;
|
|
82
83
|
endTimeMs: number;
|
|
83
84
|
totalRewards: BigNumber;
|
|
84
85
|
allocatedRewards: BigNumber;
|
|
85
86
|
cumulativeRewardsPerShare: BigNumber;
|
|
86
|
-
numUserRewardManagers:
|
|
87
|
+
numUserRewardManagers: bigint;
|
|
87
88
|
rewardIndex: number;
|
|
88
89
|
symbol: string;
|
|
89
90
|
mintDecimals: number;
|
|
90
91
|
}[];
|
|
91
|
-
lastUpdateTimeMs:
|
|
92
|
+
lastUpdateTimeMs: bigint;
|
|
92
93
|
};
|
|
93
94
|
availableAmountUsd: BigNumber;
|
|
94
95
|
borrowedAmountUsd: BigNumber;
|
|
@@ -104,19 +105,19 @@ export declare const parseLendingMarket: ({ LendingMarket, Reserve, PoolRewardMa
|
|
|
104
105
|
description: string;
|
|
105
106
|
totalDeposits: BigNumber;
|
|
106
107
|
}[];
|
|
107
|
-
obligations:
|
|
108
|
+
obligations: import("../_generated/_dependencies/source/0x2/object-table/structs").ObjectTable<"0x2::object::ID", `0xf95b06141ed4a174f239417323bde3f209b972f5930d8521ea38a52aff3a6ddf::obligation::Obligation<${string}>`>;
|
|
108
109
|
rateLimiter: {
|
|
109
110
|
config: {
|
|
110
|
-
windowDuration:
|
|
111
|
-
maxOutflow:
|
|
111
|
+
windowDuration: bigint;
|
|
112
|
+
maxOutflow: bigint;
|
|
112
113
|
};
|
|
113
|
-
$typeName:
|
|
114
|
-
prevQty:
|
|
115
|
-
windowStart:
|
|
116
|
-
curQty:
|
|
114
|
+
$typeName: string;
|
|
115
|
+
prevQty: bigint;
|
|
116
|
+
windowStart: bigint;
|
|
117
|
+
curQty: bigint;
|
|
117
118
|
remainingOutflow: BigNumber;
|
|
118
119
|
};
|
|
119
|
-
feeReceiver:
|
|
120
|
+
feeReceiver: string;
|
|
120
121
|
badDebtUsd: BigNumber;
|
|
121
122
|
badDebtLimitUsd: BigNumber;
|
|
122
123
|
depositedAmountUsd: BigNumber;
|
|
@@ -7,13 +7,24 @@ exports.parseLendingMarket = void 0;
|
|
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
8
|
const rateLimiter_1 = require("./rateLimiter");
|
|
9
9
|
const reserve_1 = require("./reserve");
|
|
10
|
-
const parseLendingMarket = (
|
|
10
|
+
const parseLendingMarket = (lendingMarket, reserves, coinMetadataMap, currentTime) => {
|
|
11
11
|
const id = lendingMarket.id;
|
|
12
12
|
const version = lendingMarket.version;
|
|
13
13
|
const parsedReserves = reserves
|
|
14
|
-
.map((reserve) => (0, reserve_1.parseReserve)(
|
|
14
|
+
.map((reserve) => (0, reserve_1.parseReserve)(reserve, coinMetadataMap))
|
|
15
15
|
.sort((a, b) => {
|
|
16
|
-
const customOrder = [
|
|
16
|
+
const customOrder = [
|
|
17
|
+
"SUI",
|
|
18
|
+
"USDC",
|
|
19
|
+
"wUSDC",
|
|
20
|
+
"USDT",
|
|
21
|
+
"nbETH",
|
|
22
|
+
"WETH",
|
|
23
|
+
"SOL",
|
|
24
|
+
"AUSD",
|
|
25
|
+
"DEEP",
|
|
26
|
+
"FUD",
|
|
27
|
+
];
|
|
17
28
|
const aCustomOrderIndex = customOrder.indexOf(a.symbol);
|
|
18
29
|
const bCustomOrderIndex = customOrder.indexOf(b.symbol);
|
|
19
30
|
if (aCustomOrderIndex > -1 && bCustomOrderIndex > -1)
|
|
@@ -24,7 +35,7 @@ const parseLendingMarket = ({ LendingMarket, Reserve, PoolRewardManager, PoolRew
|
|
|
24
35
|
return aCustomOrderIndex > -1 ? -1 : 1;
|
|
25
36
|
});
|
|
26
37
|
const obligations = lendingMarket.obligations;
|
|
27
|
-
const parsedRateLimiter = (0, rateLimiter_1.parseRateLimiter)(
|
|
38
|
+
const parsedRateLimiter = (0, rateLimiter_1.parseRateLimiter)(lendingMarket.rateLimiter, currentTime);
|
|
28
39
|
const feeReceiver = lendingMarket.feeReceiver;
|
|
29
40
|
const badDebtUsd = new bignumber_js_1.default(lendingMarket.badDebtUsd.value.toString());
|
|
30
41
|
const badDebtLimitUsd = new bignumber_js_1.default(lendingMarket.badDebtLimitUsd.value.toString());
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Obligation } from "../_generated/suilend/obligation/structs";
|
|
3
3
|
import { ParsedReserve } from "./reserve";
|
|
4
4
|
export type ParsedObligation = ReturnType<typeof parseObligation>;
|
|
5
5
|
export type ParsedPosition = ParsedObligation["deposits"][0] | ParsedObligation["borrows"][0];
|
|
6
|
-
export declare const parseObligation: (
|
|
6
|
+
export declare const parseObligation: (obligation: Obligation<string>, parsedReserveMap: {
|
|
7
7
|
[coinType: string]: ParsedReserve;
|
|
8
8
|
}) => {
|
|
9
|
-
id:
|
|
9
|
+
id: string;
|
|
10
10
|
depositedAmountUsd: BigNumber;
|
|
11
11
|
borrowedAmountUsd: BigNumber;
|
|
12
12
|
netValueUsd: BigNumber;
|
|
@@ -20,18 +20,18 @@ export declare const parseObligation: ({ Obligation }: Pick<Deps, "Obligation">,
|
|
|
20
20
|
positionCount: number;
|
|
21
21
|
deposits: {
|
|
22
22
|
coinType: string;
|
|
23
|
-
reserveArrayIndex:
|
|
23
|
+
reserveArrayIndex: bigint;
|
|
24
24
|
userRewardManagerIndex: number;
|
|
25
|
-
userRewardManager:
|
|
25
|
+
userRewardManager: import("../_generated/suilend/liquidity-mining/structs").UserRewardManager;
|
|
26
26
|
depositedAmount: BigNumber;
|
|
27
27
|
depositedAmountUsd: BigNumber;
|
|
28
28
|
depositedCtokenAmount: BigNumber;
|
|
29
29
|
reserve: {
|
|
30
30
|
config: {
|
|
31
|
-
$typeName:
|
|
32
|
-
openLtvPct:
|
|
33
|
-
closeLtvPct:
|
|
34
|
-
maxCloseLtvPct:
|
|
31
|
+
$typeName: string;
|
|
32
|
+
openLtvPct: number;
|
|
33
|
+
closeLtvPct: number;
|
|
34
|
+
maxCloseLtvPct: number;
|
|
35
35
|
borrowWeightBps: number;
|
|
36
36
|
depositLimit: BigNumber;
|
|
37
37
|
borrowLimit: BigNumber;
|
|
@@ -51,65 +51,65 @@ export declare const parseObligation: ({ Obligation }: Pick<Deps, "Obligation">,
|
|
|
51
51
|
aprPercent: BigNumber;
|
|
52
52
|
}[];
|
|
53
53
|
};
|
|
54
|
-
$typeName:
|
|
55
|
-
id:
|
|
54
|
+
$typeName: string;
|
|
55
|
+
id: string;
|
|
56
56
|
arrayIndex: bigint;
|
|
57
57
|
coinType: string;
|
|
58
|
-
mintDecimals:
|
|
58
|
+
mintDecimals: number;
|
|
59
59
|
priceIdentifier: string;
|
|
60
60
|
price: BigNumber;
|
|
61
61
|
smoothedPrice: BigNumber;
|
|
62
62
|
minPrice: BigNumber;
|
|
63
63
|
maxPrice: BigNumber;
|
|
64
|
-
priceLastUpdateTimestampS:
|
|
64
|
+
priceLastUpdateTimestampS: bigint;
|
|
65
65
|
availableAmount: BigNumber;
|
|
66
66
|
ctokenSupply: BigNumber;
|
|
67
67
|
borrowedAmount: BigNumber;
|
|
68
68
|
cumulativeBorrowRate: BigNumber;
|
|
69
|
-
interestLastUpdateTimestampS:
|
|
69
|
+
interestLastUpdateTimestampS: bigint;
|
|
70
70
|
unclaimedSpreadFees: BigNumber;
|
|
71
71
|
attributedBorrowValue: BigNumber;
|
|
72
72
|
depositsPoolRewardManager: {
|
|
73
|
-
$typeName:
|
|
74
|
-
id:
|
|
75
|
-
totalShares:
|
|
73
|
+
$typeName: string;
|
|
74
|
+
id: string;
|
|
75
|
+
totalShares: bigint;
|
|
76
76
|
poolRewards: {
|
|
77
|
-
$typeName:
|
|
78
|
-
id:
|
|
79
|
-
poolRewardManagerId:
|
|
77
|
+
$typeName: string;
|
|
78
|
+
id: string;
|
|
79
|
+
poolRewardManagerId: string;
|
|
80
80
|
coinType: string;
|
|
81
81
|
startTimeMs: number;
|
|
82
82
|
endTimeMs: number;
|
|
83
83
|
totalRewards: BigNumber;
|
|
84
84
|
allocatedRewards: BigNumber;
|
|
85
85
|
cumulativeRewardsPerShare: BigNumber;
|
|
86
|
-
numUserRewardManagers:
|
|
86
|
+
numUserRewardManagers: bigint;
|
|
87
87
|
rewardIndex: number;
|
|
88
88
|
symbol: string;
|
|
89
89
|
mintDecimals: number;
|
|
90
90
|
}[];
|
|
91
|
-
lastUpdateTimeMs:
|
|
91
|
+
lastUpdateTimeMs: bigint;
|
|
92
92
|
};
|
|
93
93
|
borrowsPoolRewardManager: {
|
|
94
|
-
$typeName:
|
|
95
|
-
id:
|
|
96
|
-
totalShares:
|
|
94
|
+
$typeName: string;
|
|
95
|
+
id: string;
|
|
96
|
+
totalShares: bigint;
|
|
97
97
|
poolRewards: {
|
|
98
|
-
$typeName:
|
|
99
|
-
id:
|
|
100
|
-
poolRewardManagerId:
|
|
98
|
+
$typeName: string;
|
|
99
|
+
id: string;
|
|
100
|
+
poolRewardManagerId: string;
|
|
101
101
|
coinType: string;
|
|
102
102
|
startTimeMs: number;
|
|
103
103
|
endTimeMs: number;
|
|
104
104
|
totalRewards: BigNumber;
|
|
105
105
|
allocatedRewards: BigNumber;
|
|
106
106
|
cumulativeRewardsPerShare: BigNumber;
|
|
107
|
-
numUserRewardManagers:
|
|
107
|
+
numUserRewardManagers: bigint;
|
|
108
108
|
rewardIndex: number;
|
|
109
109
|
symbol: string;
|
|
110
110
|
mintDecimals: number;
|
|
111
111
|
}[];
|
|
112
|
-
lastUpdateTimeMs:
|
|
112
|
+
lastUpdateTimeMs: bigint;
|
|
113
113
|
};
|
|
114
114
|
availableAmountUsd: BigNumber;
|
|
115
115
|
borrowedAmountUsd: BigNumber;
|
|
@@ -125,21 +125,21 @@ export declare const parseObligation: ({ Obligation }: Pick<Deps, "Obligation">,
|
|
|
125
125
|
description: string;
|
|
126
126
|
totalDeposits: BigNumber;
|
|
127
127
|
};
|
|
128
|
-
original:
|
|
128
|
+
original: Obligation<string>;
|
|
129
129
|
}[];
|
|
130
130
|
borrows: {
|
|
131
131
|
coinType: string;
|
|
132
|
-
reserveArrayIndex:
|
|
132
|
+
reserveArrayIndex: bigint;
|
|
133
133
|
userRewardManagerIndex: number;
|
|
134
|
-
userRewardManager:
|
|
134
|
+
userRewardManager: import("../_generated/suilend/liquidity-mining/structs").UserRewardManager;
|
|
135
135
|
borrowedAmount: BigNumber;
|
|
136
136
|
borrowedAmountUsd: BigNumber;
|
|
137
137
|
reserve: {
|
|
138
138
|
config: {
|
|
139
|
-
$typeName:
|
|
140
|
-
openLtvPct:
|
|
141
|
-
closeLtvPct:
|
|
142
|
-
maxCloseLtvPct:
|
|
139
|
+
$typeName: string;
|
|
140
|
+
openLtvPct: number;
|
|
141
|
+
closeLtvPct: number;
|
|
142
|
+
maxCloseLtvPct: number;
|
|
143
143
|
borrowWeightBps: number;
|
|
144
144
|
depositLimit: BigNumber;
|
|
145
145
|
borrowLimit: BigNumber;
|
|
@@ -159,65 +159,65 @@ export declare const parseObligation: ({ Obligation }: Pick<Deps, "Obligation">,
|
|
|
159
159
|
aprPercent: BigNumber;
|
|
160
160
|
}[];
|
|
161
161
|
};
|
|
162
|
-
$typeName:
|
|
163
|
-
id:
|
|
162
|
+
$typeName: string;
|
|
163
|
+
id: string;
|
|
164
164
|
arrayIndex: bigint;
|
|
165
165
|
coinType: string;
|
|
166
|
-
mintDecimals:
|
|
166
|
+
mintDecimals: number;
|
|
167
167
|
priceIdentifier: string;
|
|
168
168
|
price: BigNumber;
|
|
169
169
|
smoothedPrice: BigNumber;
|
|
170
170
|
minPrice: BigNumber;
|
|
171
171
|
maxPrice: BigNumber;
|
|
172
|
-
priceLastUpdateTimestampS:
|
|
172
|
+
priceLastUpdateTimestampS: bigint;
|
|
173
173
|
availableAmount: BigNumber;
|
|
174
174
|
ctokenSupply: BigNumber;
|
|
175
175
|
borrowedAmount: BigNumber;
|
|
176
176
|
cumulativeBorrowRate: BigNumber;
|
|
177
|
-
interestLastUpdateTimestampS:
|
|
177
|
+
interestLastUpdateTimestampS: bigint;
|
|
178
178
|
unclaimedSpreadFees: BigNumber;
|
|
179
179
|
attributedBorrowValue: BigNumber;
|
|
180
180
|
depositsPoolRewardManager: {
|
|
181
|
-
$typeName:
|
|
182
|
-
id:
|
|
183
|
-
totalShares:
|
|
181
|
+
$typeName: string;
|
|
182
|
+
id: string;
|
|
183
|
+
totalShares: bigint;
|
|
184
184
|
poolRewards: {
|
|
185
|
-
$typeName:
|
|
186
|
-
id:
|
|
187
|
-
poolRewardManagerId:
|
|
185
|
+
$typeName: string;
|
|
186
|
+
id: string;
|
|
187
|
+
poolRewardManagerId: string;
|
|
188
188
|
coinType: string;
|
|
189
189
|
startTimeMs: number;
|
|
190
190
|
endTimeMs: number;
|
|
191
191
|
totalRewards: BigNumber;
|
|
192
192
|
allocatedRewards: BigNumber;
|
|
193
193
|
cumulativeRewardsPerShare: BigNumber;
|
|
194
|
-
numUserRewardManagers:
|
|
194
|
+
numUserRewardManagers: bigint;
|
|
195
195
|
rewardIndex: number;
|
|
196
196
|
symbol: string;
|
|
197
197
|
mintDecimals: number;
|
|
198
198
|
}[];
|
|
199
|
-
lastUpdateTimeMs:
|
|
199
|
+
lastUpdateTimeMs: bigint;
|
|
200
200
|
};
|
|
201
201
|
borrowsPoolRewardManager: {
|
|
202
|
-
$typeName:
|
|
203
|
-
id:
|
|
204
|
-
totalShares:
|
|
202
|
+
$typeName: string;
|
|
203
|
+
id: string;
|
|
204
|
+
totalShares: bigint;
|
|
205
205
|
poolRewards: {
|
|
206
|
-
$typeName:
|
|
207
|
-
id:
|
|
208
|
-
poolRewardManagerId:
|
|
206
|
+
$typeName: string;
|
|
207
|
+
id: string;
|
|
208
|
+
poolRewardManagerId: string;
|
|
209
209
|
coinType: string;
|
|
210
210
|
startTimeMs: number;
|
|
211
211
|
endTimeMs: number;
|
|
212
212
|
totalRewards: BigNumber;
|
|
213
213
|
allocatedRewards: BigNumber;
|
|
214
214
|
cumulativeRewardsPerShare: BigNumber;
|
|
215
|
-
numUserRewardManagers:
|
|
215
|
+
numUserRewardManagers: bigint;
|
|
216
216
|
rewardIndex: number;
|
|
217
217
|
symbol: string;
|
|
218
218
|
mintDecimals: number;
|
|
219
219
|
}[];
|
|
220
|
-
lastUpdateTimeMs:
|
|
220
|
+
lastUpdateTimeMs: bigint;
|
|
221
221
|
};
|
|
222
222
|
availableAmountUsd: BigNumber;
|
|
223
223
|
borrowedAmountUsd: BigNumber;
|
|
@@ -233,10 +233,10 @@ export declare const parseObligation: ({ Obligation }: Pick<Deps, "Obligation">,
|
|
|
233
233
|
description: string;
|
|
234
234
|
totalDeposits: BigNumber;
|
|
235
235
|
};
|
|
236
|
-
original:
|
|
236
|
+
original: Obligation<string>;
|
|
237
237
|
}[];
|
|
238
238
|
weightedConservativeBorrowUtilizationPercent: BigNumber;
|
|
239
|
-
original:
|
|
239
|
+
original: Obligation<string>;
|
|
240
240
|
/**
|
|
241
241
|
* @deprecated since version 1.0.3. Use `depositedAmountUsd` instead.
|
|
242
242
|
*/
|
|
@@ -7,7 +7,7 @@ exports.parseObligation = void 0;
|
|
|
7
7
|
const utils_1 = require("@mysten/sui/utils");
|
|
8
8
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
9
|
const constants_1 = require("../constants");
|
|
10
|
-
const parseObligation = (
|
|
10
|
+
const parseObligation = (obligation, parsedReserveMap) => {
|
|
11
11
|
let totalDepositedAmountUsd = new bignumber_js_1.default(0);
|
|
12
12
|
let totalBorrowedAmountUsd = new bignumber_js_1.default(0);
|
|
13
13
|
let weightedBorrowsUsd = new bignumber_js_1.default(0);
|
|
@@ -23,8 +23,10 @@ const parseObligation = ({ Obligation }, obligation, parsedReserveMap) => {
|
|
|
23
23
|
if (!reserve)
|
|
24
24
|
throw new Error(`Reserve with coinType ${deposit.coinType.name} not found`);
|
|
25
25
|
depositPositionCount++;
|
|
26
|
-
const depositedCtokenAmount = new bignumber_js_1.default(deposit.depositedCtokenAmount.toString())
|
|
27
|
-
const depositedAmount = depositedCtokenAmount
|
|
26
|
+
const depositedCtokenAmount = new bignumber_js_1.default(deposit.depositedCtokenAmount.toString());
|
|
27
|
+
const depositedAmount = depositedCtokenAmount
|
|
28
|
+
.times(reserve.cTokenExchangeRate)
|
|
29
|
+
.div(10 ** reserve.mintDecimals);
|
|
28
30
|
const depositedAmountUsd = depositedAmount.times(reserve.price);
|
|
29
31
|
totalDepositedAmountUsd = totalDepositedAmountUsd.plus(depositedAmountUsd);
|
|
30
32
|
borrowLimitUsd = borrowLimitUsd.plus(depositedAmountUsd.times(reserve.config.openLtvPct / 100));
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
import BigNumber from "bignumber.js";
|
|
1
2
|
import { RateLimiter } from "../_generated/suilend/rate-limiter/structs";
|
|
2
3
|
export type ParsedRateLimiter = ReturnType<typeof parseRateLimiter>;
|
|
3
4
|
export type ParsedRateLimiterConfig = ReturnType<typeof parseRateLimiterConfig>;
|
|
4
5
|
export declare const parseRateLimiter: (rateLimiter: RateLimiter, currentTime: number) => {
|
|
5
6
|
config: {
|
|
6
|
-
windowDuration:
|
|
7
|
-
maxOutflow:
|
|
7
|
+
windowDuration: bigint;
|
|
8
|
+
maxOutflow: bigint;
|
|
8
9
|
};
|
|
9
|
-
$typeName:
|
|
10
|
-
prevQty:
|
|
11
|
-
windowStart:
|
|
12
|
-
curQty:
|
|
13
|
-
remainingOutflow:
|
|
10
|
+
$typeName: string;
|
|
11
|
+
prevQty: bigint;
|
|
12
|
+
windowStart: bigint;
|
|
13
|
+
curQty: bigint;
|
|
14
|
+
remainingOutflow: BigNumber;
|
|
14
15
|
};
|
|
15
16
|
export declare const parseRateLimiterConfig: (rateLimiter: RateLimiter) => {
|
|
16
|
-
windowDuration:
|
|
17
|
-
maxOutflow:
|
|
17
|
+
windowDuration: bigint;
|
|
18
|
+
maxOutflow: bigint;
|
|
18
19
|
};
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.parseRateLimiterConfig = exports.parseRateLimiter = void 0;
|
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
8
|
const constants_1 = require("../constants");
|
|
9
|
-
const parseRateLimiter = (
|
|
10
|
-
const config = (0, exports.parseRateLimiterConfig)(
|
|
9
|
+
const parseRateLimiter = (rateLimiter, currentTime) => {
|
|
10
|
+
const config = (0, exports.parseRateLimiterConfig)(rateLimiter);
|
|
11
11
|
const $typeName = rateLimiter.$typeName;
|
|
12
12
|
const prevQty = rateLimiter.prevQty.value;
|
|
13
13
|
const windowStart = rateLimiter.windowStart;
|
|
@@ -33,7 +33,7 @@ const parseRateLimiter = ({ RateLimiter }, rateLimiter, currentTime) => {
|
|
|
33
33
|
};
|
|
34
34
|
};
|
|
35
35
|
exports.parseRateLimiter = parseRateLimiter;
|
|
36
|
-
const parseRateLimiterConfig = (
|
|
36
|
+
const parseRateLimiterConfig = (rateLimiter) => {
|
|
37
37
|
const config = rateLimiter.config;
|
|
38
38
|
if (!config)
|
|
39
39
|
throw new Error("Rate limiter config not found");
|