@suilend/sdk 12.7.0 → 13.0.0-next.g122801a
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/_generated/_dependencies/pyth-2/price-identifier/structs.d.ts +46 -0
- package/_generated/_dependencies/{source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e → pyth-2}/price-identifier/structs.js +45 -25
- package/_generated/_dependencies/std/ascii/structs.d.ts +100 -0
- package/_generated/_dependencies/{source/0x1 → std}/ascii/structs.js +153 -103
- package/_generated/_dependencies/{source/0x1 → std}/option/structs.d.ts +29 -21
- package/_generated/_dependencies/std/option/structs.js +155 -0
- package/_generated/_dependencies/std/type-name/structs.d.ts +65 -0
- package/_generated/_dependencies/{source/0x1 → std}/type-name/structs.js +49 -22
- package/_generated/_dependencies/sui/bag/structs.d.ts +75 -0
- package/_generated/_dependencies/sui/bag/structs.js +154 -0
- package/_generated/_dependencies/{source/0x2 → sui}/balance/structs.d.ts +80 -60
- package/_generated/_dependencies/sui/balance/structs.js +306 -0
- package/_generated/_dependencies/sui/object/structs.d.ts +104 -0
- package/_generated/_dependencies/{source/0x2 → sui}/object/structs.js +98 -46
- package/_generated/_dependencies/{source/0x2 → sui}/object-table/structs.d.ts +37 -30
- package/_generated/_dependencies/sui/object-table/structs.js +164 -0
- package/_generated/_envs/index.d.ts +3 -0
- package/_generated/_envs/index.js +18 -0
- package/_generated/_envs/mainnet.d.ts +2 -0
- package/_generated/_envs/mainnet.js +490 -0
- package/_generated/_framework/env.d.ts +137 -0
- package/_generated/_framework/env.js +261 -0
- package/_generated/_framework/reified.d.ts +68 -36
- package/_generated/_framework/reified.js +110 -98
- package/_generated/_framework/util.d.ts +4 -4
- package/_generated/_framework/util.js +82 -79
- package/_generated/_framework/vector.d.ts +11 -9
- package/_generated/_framework/vector.js +10 -10
- package/_generated/suilend/cell/structs.d.ts +24 -22
- package/_generated/suilend/cell/structs.js +68 -24
- package/_generated/suilend/decimal/structs.d.ts +28 -24
- package/_generated/suilend/decimal/structs.js +45 -24
- package/_generated/suilend/index.d.ts +5 -6
- package/_generated/suilend/index.js +10 -19
- package/_generated/suilend/lending-market/functions.d.ts +1123 -149
- package/_generated/suilend/lending-market/functions.js +1121 -207
- package/_generated/suilend/lending-market/structs.d.ts +985 -1290
- package/_generated/suilend/lending-market/structs.js +2482 -1282
- package/_generated/suilend/lending-market-registry/functions.d.ts +32 -3
- package/_generated/suilend/lending-market-registry/functions.js +30 -6
- package/_generated/suilend/liquidity-mining/structs.d.ts +200 -333
- package/_generated/suilend/liquidity-mining/structs.js +449 -319
- package/_generated/suilend/obligation/structs.d.ts +406 -918
- package/_generated/suilend/obligation/structs.js +786 -596
- package/_generated/suilend/rate-limiter/functions.d.ts +134 -15
- package/_generated/suilend/rate-limiter/functions.js +139 -21
- package/_generated/suilend/rate-limiter/structs.d.ts +72 -80
- package/_generated/suilend/rate-limiter/structs.js +98 -48
- package/_generated/suilend/reserve/structs.d.ts +611 -904
- package/_generated/suilend/reserve/structs.js +1528 -736
- package/_generated/suilend/reserve-config/functions.d.ts +718 -96
- package/_generated/suilend/reserve-config/functions.js +751 -157
- package/_generated/suilend/reserve-config/structs.d.ts +148 -163
- package/_generated/suilend/reserve-config/structs.js +260 -94
- package/client.d.ts +2 -2
- package/client.js +22 -39
- package/lib/initialize.d.ts +617 -83
- package/lib/initialize.js +151 -48
- package/lib/proCompatible.js +5 -5
- package/package.json +1 -1
- package/parsers/lendingMarket.d.ts +9 -9
- package/parsers/obligation.d.ts +14 -14
- package/parsers/obligation.js +4 -4
- package/parsers/rateLimiter.d.ts +1 -1
- package/parsers/reserve.d.ts +12 -12
- package/parsers/reserve.js +2 -2
- package/strategies.d.ts +14 -14
- package/utils/obligation.d.ts +3 -0
- package/utils/obligation.js +10 -0
- package/utils/simulate.d.ts +1 -1
- package/utils/simulate.js +5 -5
- package/_generated/_dependencies/source/0x1/ascii/structs.d.ts +0 -84
- package/_generated/_dependencies/source/0x1/index.d.ts +0 -3
- package/_generated/_dependencies/source/0x1/index.js +0 -3
- package/_generated/_dependencies/source/0x1/option/structs.js +0 -110
- package/_generated/_dependencies/source/0x1/type-name/structs.d.ts +0 -47
- package/_generated/_dependencies/source/0x2/bag/structs.d.ts +0 -52
- package/_generated/_dependencies/source/0x2/bag/structs.js +0 -113
- package/_generated/_dependencies/source/0x2/balance/structs.js +0 -210
- package/_generated/_dependencies/source/0x2/index.d.ts +0 -3
- package/_generated/_dependencies/source/0x2/index.js +0 -3
- package/_generated/_dependencies/source/0x2/object/structs.d.ts +0 -82
- package/_generated/_dependencies/source/0x2/object-table/structs.js +0 -115
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.d.ts +0 -4
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js +0 -4
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.d.ts +0 -46
package/parsers/reserve.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type ParsedPoolRewardManager = ReturnType<typeof parsePoolRewardManager>;
|
|
|
8
8
|
export type ParsedPoolReward = NonNullable<ReturnType<typeof parsePoolReward>>;
|
|
9
9
|
export declare const parseReserve: (reserve: Reserve<string>, coinMetadataMap: Record<string, SuiClientTypes.CoinMetadata>) => {
|
|
10
10
|
config: {
|
|
11
|
-
$typeName: string
|
|
11
|
+
$typeName: `${string}::reserve_config::ReserveConfig`;
|
|
12
12
|
openLtvPct: number;
|
|
13
13
|
closeLtvPct: number;
|
|
14
14
|
maxCloseLtvPct: number;
|
|
@@ -25,14 +25,14 @@ export declare const parseReserve: (reserve: Reserve<string>, coinMetadataMap: R
|
|
|
25
25
|
isolated: boolean;
|
|
26
26
|
openAttributedBorrowLimitUsd: number;
|
|
27
27
|
closeAttributedBorrowLimitUsd: number;
|
|
28
|
-
additionalFields: import("../_generated/_dependencies/
|
|
28
|
+
additionalFields: import("../_generated/_dependencies/sui/bag/structs").Bag;
|
|
29
29
|
interestRate: {
|
|
30
30
|
id: string;
|
|
31
31
|
utilPercent: BigNumber;
|
|
32
32
|
aprPercent: BigNumber;
|
|
33
33
|
}[];
|
|
34
34
|
};
|
|
35
|
-
$typeName: string
|
|
35
|
+
$typeName: `${string}::reserve::Reserve`;
|
|
36
36
|
id: string;
|
|
37
37
|
arrayIndex: bigint;
|
|
38
38
|
coinType: string;
|
|
@@ -51,11 +51,11 @@ export declare const parseReserve: (reserve: Reserve<string>, coinMetadataMap: R
|
|
|
51
51
|
unclaimedSpreadFees: BigNumber;
|
|
52
52
|
attributedBorrowValue: BigNumber;
|
|
53
53
|
depositsPoolRewardManager: {
|
|
54
|
-
$typeName: string
|
|
54
|
+
$typeName: `${string}::liquidity_mining::PoolRewardManager`;
|
|
55
55
|
id: string;
|
|
56
56
|
totalShares: bigint;
|
|
57
57
|
poolRewards: {
|
|
58
|
-
$typeName: string
|
|
58
|
+
$typeName: `${string}::liquidity_mining::PoolReward`;
|
|
59
59
|
id: string;
|
|
60
60
|
poolRewardManagerId: string;
|
|
61
61
|
coinType: string;
|
|
@@ -72,11 +72,11 @@ export declare const parseReserve: (reserve: Reserve<string>, coinMetadataMap: R
|
|
|
72
72
|
lastUpdateTimeMs: bigint;
|
|
73
73
|
};
|
|
74
74
|
borrowsPoolRewardManager: {
|
|
75
|
-
$typeName: string
|
|
75
|
+
$typeName: `${string}::liquidity_mining::PoolRewardManager`;
|
|
76
76
|
id: string;
|
|
77
77
|
totalShares: bigint;
|
|
78
78
|
poolRewards: {
|
|
79
|
-
$typeName: string
|
|
79
|
+
$typeName: `${string}::liquidity_mining::PoolReward`;
|
|
80
80
|
id: string;
|
|
81
81
|
poolRewardManagerId: string;
|
|
82
82
|
coinType: string;
|
|
@@ -131,7 +131,7 @@ export declare const parseReserve: (reserve: Reserve<string>, coinMetadataMap: R
|
|
|
131
131
|
totalDeposits: BigNumber;
|
|
132
132
|
};
|
|
133
133
|
export declare const parseReserveConfig: (reserve: Reserve<string>) => {
|
|
134
|
-
$typeName: string
|
|
134
|
+
$typeName: `${string}::reserve_config::ReserveConfig`;
|
|
135
135
|
openLtvPct: number;
|
|
136
136
|
closeLtvPct: number;
|
|
137
137
|
maxCloseLtvPct: number;
|
|
@@ -148,7 +148,7 @@ export declare const parseReserveConfig: (reserve: Reserve<string>) => {
|
|
|
148
148
|
isolated: boolean;
|
|
149
149
|
openAttributedBorrowLimitUsd: number;
|
|
150
150
|
closeAttributedBorrowLimitUsd: number;
|
|
151
|
-
additionalFields: import("../_generated/_dependencies/
|
|
151
|
+
additionalFields: import("../_generated/_dependencies/sui/bag/structs").Bag;
|
|
152
152
|
interestRate: {
|
|
153
153
|
id: string;
|
|
154
154
|
utilPercent: BigNumber;
|
|
@@ -156,11 +156,11 @@ export declare const parseReserveConfig: (reserve: Reserve<string>) => {
|
|
|
156
156
|
}[];
|
|
157
157
|
};
|
|
158
158
|
export declare const parsePoolRewardManager: (poolRewardManager: PoolRewardManager, coinMetadataMap: Record<string, SuiClientTypes.CoinMetadata>) => {
|
|
159
|
-
$typeName: string
|
|
159
|
+
$typeName: `${string}::liquidity_mining::PoolRewardManager`;
|
|
160
160
|
id: string;
|
|
161
161
|
totalShares: bigint;
|
|
162
162
|
poolRewards: {
|
|
163
|
-
$typeName: string
|
|
163
|
+
$typeName: `${string}::liquidity_mining::PoolReward`;
|
|
164
164
|
id: string;
|
|
165
165
|
poolRewardManagerId: string;
|
|
166
166
|
coinType: string;
|
|
@@ -177,7 +177,7 @@ export declare const parsePoolRewardManager: (poolRewardManager: PoolRewardManag
|
|
|
177
177
|
lastUpdateTimeMs: bigint;
|
|
178
178
|
};
|
|
179
179
|
export declare const parsePoolReward: (poolReward: PoolReward | null, rewardIndex: number, coinMetadataMap: Record<string, SuiClientTypes.CoinMetadata>) => {
|
|
180
|
-
$typeName: string
|
|
180
|
+
$typeName: `${string}::liquidity_mining::PoolReward`;
|
|
181
181
|
id: string;
|
|
182
182
|
poolRewardManagerId: string;
|
|
183
183
|
coinType: string;
|
package/parsers/reserve.js
CHANGED
|
@@ -9,7 +9,7 @@ export const parseReserve = (reserve, coinMetadataMap) => {
|
|
|
9
9
|
const $typeName = reserve.$typeName;
|
|
10
10
|
const id = reserve.id;
|
|
11
11
|
const arrayIndex = BigInt(reserve.arrayIndex);
|
|
12
|
-
const coinType = normalizeStructTag(reserve.coinType
|
|
12
|
+
const coinType = normalizeStructTag(reserve.coinType);
|
|
13
13
|
const coinMetadata = coinMetadataMap[coinType];
|
|
14
14
|
const mintDecimals = reserve.mintDecimals;
|
|
15
15
|
const priceIdentifier = `0x${toHexString(reserve.priceIdentifier.bytes)}`;
|
|
@@ -174,7 +174,7 @@ export const parsePoolReward = (poolReward, rewardIndex, coinMetadataMap) => {
|
|
|
174
174
|
const $typeName = poolReward.$typeName;
|
|
175
175
|
const id = poolReward.id;
|
|
176
176
|
const poolRewardManagerId = poolReward.poolRewardManagerId;
|
|
177
|
-
const coinType = normalizeStructTag(poolReward.coinType
|
|
177
|
+
const coinType = normalizeStructTag(poolReward.coinType);
|
|
178
178
|
const coinMetadata = coinMetadataMap[coinType];
|
|
179
179
|
const mintDecimals = coinMetadata.decimals;
|
|
180
180
|
const startTimeMs = Number(poolReward.startTimeMs);
|
package/strategies.d.ts
CHANGED
|
@@ -57,7 +57,7 @@ export declare const addOrInsertStrategyDeposit: (_deposits: StrategyDeposit[],
|
|
|
57
57
|
export declare const hasStrategyPosition: (obligation: ParsedObligation) => boolean;
|
|
58
58
|
export declare const getStrategySuiReserve: (reserveMap: Record<string, ParsedReserve>) => {
|
|
59
59
|
config: {
|
|
60
|
-
$typeName: string
|
|
60
|
+
$typeName: `${string}::reserve_config::ReserveConfig`;
|
|
61
61
|
openLtvPct: number;
|
|
62
62
|
closeLtvPct: number;
|
|
63
63
|
maxCloseLtvPct: number;
|
|
@@ -74,14 +74,14 @@ export declare const getStrategySuiReserve: (reserveMap: Record<string, ParsedRe
|
|
|
74
74
|
isolated: boolean;
|
|
75
75
|
openAttributedBorrowLimitUsd: number;
|
|
76
76
|
closeAttributedBorrowLimitUsd: number;
|
|
77
|
-
additionalFields: import("./_generated/_dependencies/
|
|
77
|
+
additionalFields: import("./_generated/_dependencies/sui/bag/structs").Bag;
|
|
78
78
|
interestRate: {
|
|
79
79
|
id: string;
|
|
80
80
|
utilPercent: BigNumber;
|
|
81
81
|
aprPercent: BigNumber;
|
|
82
82
|
}[];
|
|
83
83
|
};
|
|
84
|
-
$typeName: string
|
|
84
|
+
$typeName: `${string}::reserve::Reserve`;
|
|
85
85
|
id: string;
|
|
86
86
|
arrayIndex: bigint;
|
|
87
87
|
coinType: string;
|
|
@@ -100,11 +100,11 @@ export declare const getStrategySuiReserve: (reserveMap: Record<string, ParsedRe
|
|
|
100
100
|
unclaimedSpreadFees: BigNumber;
|
|
101
101
|
attributedBorrowValue: BigNumber;
|
|
102
102
|
depositsPoolRewardManager: {
|
|
103
|
-
$typeName: string
|
|
103
|
+
$typeName: `${string}::liquidity_mining::PoolRewardManager`;
|
|
104
104
|
id: string;
|
|
105
105
|
totalShares: bigint;
|
|
106
106
|
poolRewards: {
|
|
107
|
-
$typeName: string
|
|
107
|
+
$typeName: `${string}::liquidity_mining::PoolReward`;
|
|
108
108
|
id: string;
|
|
109
109
|
poolRewardManagerId: string;
|
|
110
110
|
coinType: string;
|
|
@@ -121,11 +121,11 @@ export declare const getStrategySuiReserve: (reserveMap: Record<string, ParsedRe
|
|
|
121
121
|
lastUpdateTimeMs: bigint;
|
|
122
122
|
};
|
|
123
123
|
borrowsPoolRewardManager: {
|
|
124
|
-
$typeName: string
|
|
124
|
+
$typeName: `${string}::liquidity_mining::PoolRewardManager`;
|
|
125
125
|
id: string;
|
|
126
126
|
totalShares: bigint;
|
|
127
127
|
poolRewards: {
|
|
128
|
-
$typeName: string
|
|
128
|
+
$typeName: `${string}::liquidity_mining::PoolReward`;
|
|
129
129
|
id: string;
|
|
130
130
|
poolRewardManagerId: string;
|
|
131
131
|
coinType: string;
|
|
@@ -187,7 +187,7 @@ export declare const getStrategyDepositReserves: (reserveMap: Record<string, Par
|
|
|
187
187
|
export declare const getStrategyBorrowReserve: (reserveMap: Record<string, ParsedReserve>, strategyType: StrategyType) => ParsedReserve;
|
|
188
188
|
export declare const getStrategyDefaultCurrencyReserve: (reserveMap: Record<string, ParsedReserve>, strategyType: StrategyType) => {
|
|
189
189
|
config: {
|
|
190
|
-
$typeName: string
|
|
190
|
+
$typeName: `${string}::reserve_config::ReserveConfig`;
|
|
191
191
|
openLtvPct: number;
|
|
192
192
|
closeLtvPct: number;
|
|
193
193
|
maxCloseLtvPct: number;
|
|
@@ -204,14 +204,14 @@ export declare const getStrategyDefaultCurrencyReserve: (reserveMap: Record<stri
|
|
|
204
204
|
isolated: boolean;
|
|
205
205
|
openAttributedBorrowLimitUsd: number;
|
|
206
206
|
closeAttributedBorrowLimitUsd: number;
|
|
207
|
-
additionalFields: import("./_generated/_dependencies/
|
|
207
|
+
additionalFields: import("./_generated/_dependencies/sui/bag/structs").Bag;
|
|
208
208
|
interestRate: {
|
|
209
209
|
id: string;
|
|
210
210
|
utilPercent: BigNumber;
|
|
211
211
|
aprPercent: BigNumber;
|
|
212
212
|
}[];
|
|
213
213
|
};
|
|
214
|
-
$typeName: string
|
|
214
|
+
$typeName: `${string}::reserve::Reserve`;
|
|
215
215
|
id: string;
|
|
216
216
|
arrayIndex: bigint;
|
|
217
217
|
coinType: string;
|
|
@@ -230,11 +230,11 @@ export declare const getStrategyDefaultCurrencyReserve: (reserveMap: Record<stri
|
|
|
230
230
|
unclaimedSpreadFees: BigNumber;
|
|
231
231
|
attributedBorrowValue: BigNumber;
|
|
232
232
|
depositsPoolRewardManager: {
|
|
233
|
-
$typeName: string
|
|
233
|
+
$typeName: `${string}::liquidity_mining::PoolRewardManager`;
|
|
234
234
|
id: string;
|
|
235
235
|
totalShares: bigint;
|
|
236
236
|
poolRewards: {
|
|
237
|
-
$typeName: string
|
|
237
|
+
$typeName: `${string}::liquidity_mining::PoolReward`;
|
|
238
238
|
id: string;
|
|
239
239
|
poolRewardManagerId: string;
|
|
240
240
|
coinType: string;
|
|
@@ -251,11 +251,11 @@ export declare const getStrategyDefaultCurrencyReserve: (reserveMap: Record<stri
|
|
|
251
251
|
lastUpdateTimeMs: bigint;
|
|
252
252
|
};
|
|
253
253
|
borrowsPoolRewardManager: {
|
|
254
|
-
$typeName: string
|
|
254
|
+
$typeName: `${string}::liquidity_mining::PoolRewardManager`;
|
|
255
255
|
id: string;
|
|
256
256
|
totalShares: bigint;
|
|
257
257
|
poolRewards: {
|
|
258
|
-
$typeName: string
|
|
258
|
+
$typeName: `${string}::liquidity_mining::PoolReward`;
|
|
259
259
|
id: string;
|
|
260
260
|
poolRewardManagerId: string;
|
|
261
261
|
coinType: string;
|
package/utils/obligation.d.ts
CHANGED
|
@@ -9,6 +9,9 @@ export declare function fetchAllObligationsForMarket(suiGrpcClient: SuiGrpcClien
|
|
|
9
9
|
export declare function chunkedMultiGet(suiGrpcClient: SuiGrpcClient, objectIds: string[]): Promise<(Error | SuiClientTypes.Object<{
|
|
10
10
|
content: true;
|
|
11
11
|
}>)[]>;
|
|
12
|
+
export declare function chunkedMultiGetSettled(suiGrpcClient: SuiGrpcClient, objectIds: string[]): Promise<(Error | SuiClientTypes.Object<{
|
|
13
|
+
content: true;
|
|
14
|
+
}>)[]>;
|
|
12
15
|
export type FormattedObligationHistory = NonLiquidationHistoryEvent | LiquidationHistoryEvent;
|
|
13
16
|
export type NonLiquidationHistoryEvent = {
|
|
14
17
|
reserveId: string;
|
package/utils/obligation.js
CHANGED
|
@@ -84,6 +84,16 @@ export async function chunkedMultiGet(suiGrpcClient, objectIds) {
|
|
|
84
84
|
}
|
|
85
85
|
return results;
|
|
86
86
|
}
|
|
87
|
+
export async function chunkedMultiGetSettled(suiGrpcClient, objectIds) {
|
|
88
|
+
const limit = pLimit(30);
|
|
89
|
+
const results = await Promise.all(splitIntoChunks(objectIds, 50).map((chunk) => limit(() => suiGrpcClient.getObjects({
|
|
90
|
+
objectIds: chunk,
|
|
91
|
+
include: { content: true },
|
|
92
|
+
})).then(({ objects }) => objects.length === chunk.length
|
|
93
|
+
? objects
|
|
94
|
+
: chunk.map(() => new Error(`getObjects returned ${objects.length} objects for ${chunk.length} ids`)), (error) => chunk.map(() => error instanceof Error ? error : new Error(String(error))))));
|
|
95
|
+
return results.flat();
|
|
96
|
+
}
|
|
87
97
|
function splitIntoChunks(arr, chunkSize) {
|
|
88
98
|
const result = [];
|
|
89
99
|
for (let i = 0; i < arr.length; i += chunkSize) {
|
package/utils/simulate.d.ts
CHANGED
|
@@ -164,7 +164,7 @@ export declare const compoundBorrowedAmount: (snapshotAmount: BigNumber, current
|
|
|
164
164
|
*/
|
|
165
165
|
export declare const compoundDebt: (borrow: Borrow, reserve: Reserve<string>) => Borrow;
|
|
166
166
|
export type ObligationHealthDepositInput = {
|
|
167
|
-
/** Matches `reserve.coinType
|
|
167
|
+
/** Matches `reserve.coinType` (unprefixed struct tag) — same field `refreshObligation` compares deposits against. */
|
|
168
168
|
coinType: string;
|
|
169
169
|
/** Raw ctoken unit count, i.e. `deposit.depositedCtokenAmount` as stored (Positions.quantity for a deposit row). */
|
|
170
170
|
depositedCtokenAmount: BigNumber;
|
package/utils/simulate.js
CHANGED
|
@@ -173,7 +173,7 @@ export const applyReservePriceFeeds = (reserves, priceFeeds) => {
|
|
|
173
173
|
return reserves.map((reserve) => {
|
|
174
174
|
const priceFeed = byId.get(reserveFeedId(reserve));
|
|
175
175
|
if (!priceFeed)
|
|
176
|
-
throw new Error(`Price feed not found for reserve ${reserve.coinType
|
|
176
|
+
throw new Error(`Price feed not found for reserve ${reserve.coinType}`);
|
|
177
177
|
return withFeedPrice(reserve, priceFeed);
|
|
178
178
|
});
|
|
179
179
|
};
|
|
@@ -260,7 +260,7 @@ export const applyReservePriceFeedsTolerant = (reserves, priceFeeds) => {
|
|
|
260
260
|
// normalizeStructTag'd). The raw on-chain form never compares equal to
|
|
261
261
|
// one of those keys — it lacks the `0x` prefix — so reporting it raw made
|
|
262
262
|
// the cross-reference this field exists for silently never match.
|
|
263
|
-
unpricedCoinTypes.push(normalizeStructTag(reserve.coinType
|
|
263
|
+
unpricedCoinTypes.push(normalizeStructTag(reserve.coinType));
|
|
264
264
|
return reserve;
|
|
265
265
|
}
|
|
266
266
|
return withFeedPrice(reserve, priceFeed);
|
|
@@ -320,7 +320,7 @@ export const updateUserRewardManager = (poolManager, userRewardManager, nowMs) =
|
|
|
320
320
|
return updatedUserRewardManager;
|
|
321
321
|
};
|
|
322
322
|
export const findReserveOrThrow = (reserves, coinType) => {
|
|
323
|
-
const reserve = reserves.find((r) => r.coinType
|
|
323
|
+
const reserve = reserves.find((r) => r.coinType === coinType);
|
|
324
324
|
if (!reserve) {
|
|
325
325
|
throw new Error(`Unable to find reserve for coin type ${coinType}`);
|
|
326
326
|
}
|
|
@@ -348,7 +348,7 @@ export function computeObligationRefresh(obligation, refreshedReserves, nowMs) {
|
|
|
348
348
|
let unhealthyBorrowValueUsd = new BigNumber(0);
|
|
349
349
|
const deposits = obligation.deposits.map((unrefreshedDeposit) => {
|
|
350
350
|
const deposit = { ...unrefreshedDeposit };
|
|
351
|
-
const reserve = findReserveOrThrow(refreshedReserves, deposit.coinType
|
|
351
|
+
const reserve = findReserveOrThrow(refreshedReserves, deposit.coinType);
|
|
352
352
|
const config = reserve.config.element;
|
|
353
353
|
userRewardManagers[Number(deposit.userRewardManagerIndex)] =
|
|
354
354
|
updateUserRewardManager(reserve.depositsPoolRewardManager, userRewardManagers[Number(deposit.userRewardManagerIndex)], nowMs);
|
|
@@ -364,7 +364,7 @@ export function computeObligationRefresh(obligation, refreshedReserves, nowMs) {
|
|
|
364
364
|
let weightedBorrowedValueUsd = new BigNumber(0);
|
|
365
365
|
let weightedBorrowedValueUpperBoundUsd = new BigNumber(0);
|
|
366
366
|
const borrows = obligation.borrows.map((unrefreshedBorrow) => {
|
|
367
|
-
const reserve = findReserveOrThrow(refreshedReserves, unrefreshedBorrow.coinType
|
|
367
|
+
const reserve = findReserveOrThrow(refreshedReserves, unrefreshedBorrow.coinType);
|
|
368
368
|
const config = reserve.config.element;
|
|
369
369
|
// Exact BigNumber-compounded amount, computed once and reused below for
|
|
370
370
|
// `borrow.borrowedAmount` and both market values. `compoundDebt` would
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import * as reified from "../../../../_framework/reified";
|
|
2
|
-
import { PhantomReified, Reified, StructClass, ToField, ToTypeStr } from "../../../../_framework/reified";
|
|
3
|
-
import { FieldsWithTypes } from "../../../../_framework/util";
|
|
4
|
-
import { Vector } from "../../../../_framework/vector";
|
|
5
|
-
import { PKG_V13 } from "../index";
|
|
6
|
-
import { SuiGrpcClient } from "@mysten/sui/grpc";
|
|
7
|
-
export declare function isChar(type: string): boolean;
|
|
8
|
-
export interface CharFields {
|
|
9
|
-
byte: ToField<"u8">;
|
|
10
|
-
}
|
|
11
|
-
export type CharReified = Reified<Char, CharFields>;
|
|
12
|
-
export declare class Char implements StructClass {
|
|
13
|
-
__StructClass: true;
|
|
14
|
-
static readonly $typeName = "0x1::ascii::Char";
|
|
15
|
-
static readonly $numTypeParams = 0;
|
|
16
|
-
static readonly $isPhantom: readonly [];
|
|
17
|
-
readonly $typeName = "0x1::ascii::Char";
|
|
18
|
-
readonly $fullTypeName: `${typeof PKG_V13}::ascii::Char`;
|
|
19
|
-
readonly $typeArgs: [];
|
|
20
|
-
readonly $isPhantom: readonly [];
|
|
21
|
-
readonly byte: ToField<"u8">;
|
|
22
|
-
private constructor();
|
|
23
|
-
static reified(): CharReified;
|
|
24
|
-
static get r(): reified.StructClassReified<Char, CharFields>;
|
|
25
|
-
static phantom(): PhantomReified<ToTypeStr<Char>>;
|
|
26
|
-
static get p(): reified.PhantomReified<"0x1::ascii::Char">;
|
|
27
|
-
static get bcs(): import("@mysten/bcs").BcsStruct<{
|
|
28
|
-
byte: import("@mysten/bcs").BcsType<number, number, "u8">;
|
|
29
|
-
}, string>;
|
|
30
|
-
static fromFields(fields: Record<string, any>): Char;
|
|
31
|
-
static fromFieldsWithTypes(item: FieldsWithTypes): Char;
|
|
32
|
-
static fromBcs(data: Uint8Array): Char;
|
|
33
|
-
toJSONField(): {
|
|
34
|
-
byte: number;
|
|
35
|
-
};
|
|
36
|
-
toJSON(): {
|
|
37
|
-
byte: number;
|
|
38
|
-
$typeName: string;
|
|
39
|
-
$typeArgs: [];
|
|
40
|
-
};
|
|
41
|
-
static fromJSONField(field: any): Char;
|
|
42
|
-
static fromJSON(json: Record<string, any>): Char;
|
|
43
|
-
static fetch(client: SuiGrpcClient, id: string): Promise<Char>;
|
|
44
|
-
}
|
|
45
|
-
export declare function isString(type: string): boolean;
|
|
46
|
-
export interface StringFields {
|
|
47
|
-
bytes: ToField<Vector<"u8">>;
|
|
48
|
-
}
|
|
49
|
-
export type StringReified = Reified<String, StringFields>;
|
|
50
|
-
export declare class String implements StructClass {
|
|
51
|
-
__StructClass: true;
|
|
52
|
-
static readonly $typeName = "0x1::ascii::String";
|
|
53
|
-
static readonly $numTypeParams = 0;
|
|
54
|
-
static readonly $isPhantom: readonly [];
|
|
55
|
-
readonly $typeName = "0x1::ascii::String";
|
|
56
|
-
readonly $fullTypeName: `${typeof PKG_V13}::ascii::String`;
|
|
57
|
-
readonly $typeArgs: [];
|
|
58
|
-
readonly $isPhantom: readonly [];
|
|
59
|
-
readonly bytes: ToField<Vector<"u8">>;
|
|
60
|
-
private constructor();
|
|
61
|
-
static reified(): StringReified;
|
|
62
|
-
static get r(): reified.StructClassReified<String, StringFields>;
|
|
63
|
-
static phantom(): PhantomReified<ToTypeStr<String>>;
|
|
64
|
-
static get p(): reified.PhantomReified<"0x1::ascii::String">;
|
|
65
|
-
static get bcs(): import("@mysten/bcs").BcsStruct<{
|
|
66
|
-
bytes: import("@mysten/bcs").BcsType<number[], Iterable<number> & {
|
|
67
|
-
length: number;
|
|
68
|
-
}, string>;
|
|
69
|
-
}, string>;
|
|
70
|
-
static fromFields(fields: Record<string, any>): String;
|
|
71
|
-
static fromFieldsWithTypes(item: FieldsWithTypes): String;
|
|
72
|
-
static fromBcs(data: Uint8Array): String;
|
|
73
|
-
toJSONField(): {
|
|
74
|
-
bytes: number[];
|
|
75
|
-
};
|
|
76
|
-
toJSON(): {
|
|
77
|
-
bytes: number[];
|
|
78
|
-
$typeName: string;
|
|
79
|
-
$typeArgs: [];
|
|
80
|
-
};
|
|
81
|
-
static fromJSONField(field: any): String;
|
|
82
|
-
static fromJSON(json: Record<string, any>): String;
|
|
83
|
-
static fetch(client: SuiGrpcClient, id: string): Promise<String>;
|
|
84
|
-
}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import * as reified from "../../../../_framework/reified.js";
|
|
2
|
-
import { assertFieldsWithTypesArgsMatch, assertReifiedTypeArgsMatch, decodeFromFields, decodeFromFieldsWithTypes, decodeFromJSONField, extractType, fieldToJSON, phantom, toBcs, } from "../../../../_framework/reified.js";
|
|
3
|
-
import { composeSuiType, compressSuiType, } from "../../../../_framework/util.js";
|
|
4
|
-
import { PKG_V13 } from "../index.js";
|
|
5
|
-
import { bcs } from "@mysten/sui/bcs";
|
|
6
|
-
/* ============================== Option =============================== */
|
|
7
|
-
export function isOption(type) {
|
|
8
|
-
type = compressSuiType(type);
|
|
9
|
-
return type.startsWith(`${PKG_V13}::option::Option` + "<");
|
|
10
|
-
}
|
|
11
|
-
export class Option {
|
|
12
|
-
__StructClass = true;
|
|
13
|
-
static $typeName = `${PKG_V13}::option::Option`;
|
|
14
|
-
static $numTypeParams = 1;
|
|
15
|
-
static $isPhantom = [false];
|
|
16
|
-
__inner = null; // for type checking in reified.ts
|
|
17
|
-
$typeName = Option.$typeName;
|
|
18
|
-
$fullTypeName;
|
|
19
|
-
$typeArgs;
|
|
20
|
-
$isPhantom = Option.$isPhantom;
|
|
21
|
-
vec;
|
|
22
|
-
constructor(typeArgs, fields) {
|
|
23
|
-
this.$fullTypeName = composeSuiType(Option.$typeName, ...typeArgs);
|
|
24
|
-
this.$typeArgs = typeArgs;
|
|
25
|
-
this.vec = fields.vec;
|
|
26
|
-
}
|
|
27
|
-
static reified(Element) {
|
|
28
|
-
return {
|
|
29
|
-
typeName: Option.$typeName,
|
|
30
|
-
fullTypeName: composeSuiType(Option.$typeName, ...[extractType(Element)]),
|
|
31
|
-
typeArgs: [extractType(Element)],
|
|
32
|
-
isPhantom: Option.$isPhantom,
|
|
33
|
-
reifiedTypeArgs: [Element],
|
|
34
|
-
fromFields: (fields) => Option.fromFields(Element, fields),
|
|
35
|
-
fromFieldsWithTypes: (item) => Option.fromFieldsWithTypes(Element, item),
|
|
36
|
-
fromBcs: (data) => Option.fromBcs(Element, data),
|
|
37
|
-
bcs: Option.bcs(toBcs(Element)),
|
|
38
|
-
fromJSONField: (field) => Option.fromJSONField(Element, field),
|
|
39
|
-
fromJSON: (json) => Option.fromJSON(Element, json),
|
|
40
|
-
fetch: async (client, id) => Option.fetch(client, Element, id),
|
|
41
|
-
new: (fields) => {
|
|
42
|
-
return new Option([extractType(Element)], fields);
|
|
43
|
-
},
|
|
44
|
-
kind: "StructClassReified",
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
static get r() {
|
|
48
|
-
return Option.reified;
|
|
49
|
-
}
|
|
50
|
-
static phantom(Element) {
|
|
51
|
-
return phantom(Option.reified(Element));
|
|
52
|
-
}
|
|
53
|
-
static get p() {
|
|
54
|
-
return Option.phantom;
|
|
55
|
-
}
|
|
56
|
-
static get bcs() {
|
|
57
|
-
return (Element) => bcs.struct(`Option<${Element.name}>`, {
|
|
58
|
-
vec: bcs.vector(Element),
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
static fromFields(typeArg, fields) {
|
|
62
|
-
return Option.reified(typeArg).new({
|
|
63
|
-
vec: decodeFromFields(reified.vector(typeArg), fields.vec),
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
static fromFieldsWithTypes(typeArg, item) {
|
|
67
|
-
if (!isOption(item.type)) {
|
|
68
|
-
throw new Error("not a Option type");
|
|
69
|
-
}
|
|
70
|
-
assertFieldsWithTypesArgsMatch(item, [typeArg]);
|
|
71
|
-
return Option.reified(typeArg).new({
|
|
72
|
-
vec: decodeFromFieldsWithTypes(reified.vector(typeArg), item.fields.vec),
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
static fromBcs(typeArg, data) {
|
|
76
|
-
const typeArgs = [typeArg];
|
|
77
|
-
return Option.fromFields(typeArg, Option.bcs(toBcs(typeArgs[0])).parse(data));
|
|
78
|
-
}
|
|
79
|
-
toJSONField() {
|
|
80
|
-
return {
|
|
81
|
-
vec: fieldToJSON(`vector<${this.$typeArgs[0]}>`, this.vec),
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
toJSON() {
|
|
85
|
-
return {
|
|
86
|
-
$typeName: this.$typeName,
|
|
87
|
-
$typeArgs: this.$typeArgs,
|
|
88
|
-
...this.toJSONField(),
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
static fromJSONField(typeArg, field) {
|
|
92
|
-
return Option.reified(typeArg).new({
|
|
93
|
-
vec: decodeFromJSONField(reified.vector(typeArg), field.vec),
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
static fromJSON(typeArg, json) {
|
|
97
|
-
if (json.$typeName !== Option.$typeName) {
|
|
98
|
-
throw new Error("not a WithTwoGenerics json object");
|
|
99
|
-
}
|
|
100
|
-
assertReifiedTypeArgsMatch(composeSuiType(Option.$typeName, extractType(typeArg)), json.$typeArgs, [typeArg]);
|
|
101
|
-
return Option.fromJSONField(typeArg, json);
|
|
102
|
-
}
|
|
103
|
-
static async fetch(client, typeArg, id) {
|
|
104
|
-
const { object } = await client.getObject({ objectId: id, include: { content: true } });
|
|
105
|
-
if (!isOption(object.type)) {
|
|
106
|
-
throw new Error(`object at id ${id} is not a Option object`);
|
|
107
|
-
}
|
|
108
|
-
return Option.fromBcs(typeArg, object.content);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { PhantomReified, Reified, StructClass, ToField, ToTypeStr } from "../../../../_framework/reified";
|
|
2
|
-
import { FieldsWithTypes } from "../../../../_framework/util";
|
|
3
|
-
import { String } from "../ascii/structs";
|
|
4
|
-
import { PKG_V13 } from "../index";
|
|
5
|
-
import { SuiGrpcClient } from "@mysten/sui/grpc";
|
|
6
|
-
export declare function isTypeName(type: string): boolean;
|
|
7
|
-
export interface TypeNameFields {
|
|
8
|
-
name: ToField<String>;
|
|
9
|
-
}
|
|
10
|
-
export type TypeNameReified = Reified<TypeName, TypeNameFields>;
|
|
11
|
-
export declare class TypeName implements StructClass {
|
|
12
|
-
__StructClass: true;
|
|
13
|
-
static readonly $typeName = "0x1::type_name::TypeName";
|
|
14
|
-
static readonly $numTypeParams = 0;
|
|
15
|
-
static readonly $isPhantom: readonly [];
|
|
16
|
-
readonly $typeName = "0x1::type_name::TypeName";
|
|
17
|
-
readonly $fullTypeName: `${typeof PKG_V13}::type_name::TypeName`;
|
|
18
|
-
readonly $typeArgs: [];
|
|
19
|
-
readonly $isPhantom: readonly [];
|
|
20
|
-
readonly name: ToField<String>;
|
|
21
|
-
private constructor();
|
|
22
|
-
static reified(): TypeNameReified;
|
|
23
|
-
static get r(): import("../../../../_framework/reified").StructClassReified<TypeName, TypeNameFields>;
|
|
24
|
-
static phantom(): PhantomReified<ToTypeStr<TypeName>>;
|
|
25
|
-
static get p(): PhantomReified<"0x1::type_name::TypeName">;
|
|
26
|
-
static get bcs(): import("@mysten/bcs").BcsStruct<{
|
|
27
|
-
name: import("@mysten/bcs").BcsStruct<{
|
|
28
|
-
bytes: import("@mysten/bcs").BcsType<number[], Iterable<number> & {
|
|
29
|
-
length: number;
|
|
30
|
-
}, string>;
|
|
31
|
-
}, string>;
|
|
32
|
-
}, string>;
|
|
33
|
-
static fromFields(fields: Record<string, any>): TypeName;
|
|
34
|
-
static fromFieldsWithTypes(item: FieldsWithTypes): TypeName;
|
|
35
|
-
static fromBcs(data: Uint8Array): TypeName;
|
|
36
|
-
toJSONField(): {
|
|
37
|
-
name: string;
|
|
38
|
-
};
|
|
39
|
-
toJSON(): {
|
|
40
|
-
name: string;
|
|
41
|
-
$typeName: string;
|
|
42
|
-
$typeArgs: [];
|
|
43
|
-
};
|
|
44
|
-
static fromJSONField(field: any): TypeName;
|
|
45
|
-
static fromJSON(json: Record<string, any>): TypeName;
|
|
46
|
-
static fetch(client: SuiGrpcClient, id: string): Promise<TypeName>;
|
|
47
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { PhantomReified, Reified, StructClass, ToField, ToTypeStr } from "../../../../_framework/reified";
|
|
2
|
-
import { FieldsWithTypes } from "../../../../_framework/util";
|
|
3
|
-
import { PKG_V30 } from "../index";
|
|
4
|
-
import { UID } from "../object/structs";
|
|
5
|
-
import { SuiGrpcClient } from "@mysten/sui/grpc";
|
|
6
|
-
export declare function isBag(type: string): boolean;
|
|
7
|
-
export interface BagFields {
|
|
8
|
-
id: ToField<UID>;
|
|
9
|
-
size: ToField<"u64">;
|
|
10
|
-
}
|
|
11
|
-
export type BagReified = Reified<Bag, BagFields>;
|
|
12
|
-
export declare class Bag implements StructClass {
|
|
13
|
-
__StructClass: true;
|
|
14
|
-
static readonly $typeName = "0x2::bag::Bag";
|
|
15
|
-
static readonly $numTypeParams = 0;
|
|
16
|
-
static readonly $isPhantom: readonly [];
|
|
17
|
-
readonly $typeName = "0x2::bag::Bag";
|
|
18
|
-
readonly $fullTypeName: `${typeof PKG_V30}::bag::Bag`;
|
|
19
|
-
readonly $typeArgs: [];
|
|
20
|
-
readonly $isPhantom: readonly [];
|
|
21
|
-
readonly id: ToField<UID>;
|
|
22
|
-
readonly size: ToField<"u64">;
|
|
23
|
-
private constructor();
|
|
24
|
-
static reified(): BagReified;
|
|
25
|
-
static get r(): import("../../../../_framework/reified").StructClassReified<Bag, BagFields>;
|
|
26
|
-
static phantom(): PhantomReified<ToTypeStr<Bag>>;
|
|
27
|
-
static get p(): PhantomReified<"0x2::bag::Bag">;
|
|
28
|
-
static get bcs(): import("@mysten/bcs").BcsStruct<{
|
|
29
|
-
id: import("@mysten/bcs").BcsStruct<{
|
|
30
|
-
id: import("@mysten/bcs").BcsStruct<{
|
|
31
|
-
bytes: import("@mysten/bcs").BcsType<string, string, string>;
|
|
32
|
-
}, string>;
|
|
33
|
-
}, string>;
|
|
34
|
-
size: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
35
|
-
}, string>;
|
|
36
|
-
static fromFields(fields: Record<string, any>): Bag;
|
|
37
|
-
static fromFieldsWithTypes(item: FieldsWithTypes): Bag;
|
|
38
|
-
static fromBcs(data: Uint8Array): Bag;
|
|
39
|
-
toJSONField(): {
|
|
40
|
-
id: string;
|
|
41
|
-
size: string;
|
|
42
|
-
};
|
|
43
|
-
toJSON(): {
|
|
44
|
-
id: string;
|
|
45
|
-
size: string;
|
|
46
|
-
$typeName: string;
|
|
47
|
-
$typeArgs: [];
|
|
48
|
-
};
|
|
49
|
-
static fromJSONField(field: any): Bag;
|
|
50
|
-
static fromJSON(json: Record<string, any>): Bag;
|
|
51
|
-
static fetch(client: SuiGrpcClient, id: string): Promise<Bag>;
|
|
52
|
-
}
|