@suilend/sdk 3.0.8 → 4.0.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/_generated/_dependencies/source/0x1/ascii/structs.d.ts +4 -4
- package/_generated/_dependencies/source/0x1/ascii/structs.js +42 -41
- package/_generated/_dependencies/source/0x1/option/structs.js +22 -26
- package/_generated/_dependencies/source/0x1/type-name/structs.d.ts +3 -3
- package/_generated/_dependencies/source/0x1/type-name/structs.js +21 -25
- package/_generated/_dependencies/source/0x2/bag/structs.d.ts +5 -5
- package/_generated/_dependencies/source/0x2/bag/structs.js +22 -25
- package/_generated/_dependencies/source/0x2/balance/structs.d.ts +4 -4
- package/_generated/_dependencies/source/0x2/balance/structs.js +42 -41
- package/_generated/_dependencies/source/0x2/object/structs.d.ts +5 -5
- package/_generated/_dependencies/source/0x2/object/structs.js +42 -41
- package/_generated/_dependencies/source/0x2/object-table/structs.d.ts +5 -5
- package/_generated/_dependencies/source/0x2/object-table/structs.js +22 -25
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.d.ts +3 -3
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.js +22 -25
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.d.ts +9 -9
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.js +24 -25
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.d.ts +21 -21
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.js +23 -25
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.d.ts +2 -2
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js +21 -25
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.d.ts +52 -52
- package/_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.js +45 -41
- package/_generated/_framework/vector.js +9 -6
- package/_generated/suilend/cell/structs.d.ts +1 -1
- package/_generated/suilend/cell/structs.js +21 -25
- package/_generated/suilend/decimal/structs.d.ts +2 -2
- package/_generated/suilend/decimal/structs.js +21 -25
- package/_generated/suilend/lending-market/structs.d.ts +129 -129
- package/_generated/suilend/lending-market/structs.js +391 -265
- package/_generated/suilend/liquidity-mining/structs.d.ts +44 -44
- package/_generated/suilend/liquidity-mining/structs.js +122 -89
- package/_generated/suilend/obligation/structs.d.ts +98 -98
- package/_generated/suilend/obligation/structs.js +194 -121
- package/_generated/suilend/rate-limiter/structs.d.ts +12 -12
- package/_generated/suilend/rate-limiter/structs.js +46 -41
- package/_generated/suilend/reserve/structs.d.ts +128 -128
- package/_generated/suilend/reserve/structs.js +243 -153
- package/_generated/suilend/reserve-config/structs.d.ts +30 -30
- package/_generated/suilend/reserve-config/structs.js +60 -41
- package/api/events.js +5 -14
- package/client.js +267 -319
- package/lib/initialize.d.ts +2 -2
- package/lib/initialize.js +26 -31
- package/lib/liquidityMining.js +15 -19
- package/lib/pyth.js +6 -15
- package/lib/pythAdapter.js +96 -112
- package/lib/strategyOwnerCap.js +8 -17
- package/margin/margin/admin_cap.d.ts +2 -2
- package/margin/margin/deps/std/type_name.d.ts +1 -1
- package/margin/margin/deps/suilend/lending_market.d.ts +2 -2
- package/margin/margin/market.d.ts +11 -11
- package/margin/margin/market.js +22 -22
- package/margin/margin/permissions.js +14 -14
- package/margin/margin/position.d.ts +47 -47
- package/margin/margin/position.js +10 -10
- package/margin/margin/router.d.ts +5 -5
- package/margin/margin/router.js +16 -16
- package/margin/margin/version.d.ts +1 -1
- package/margin/utils/index.js +22 -36
- package/package.json +1 -1
- package/parsers/apiReserveAssetDataEvent.js +4 -1
- package/parsers/lendingMarket.js +3 -4
- package/parsers/reserve.js +4 -1
- package/strategies.js +188 -204
- package/swap/quote.d.ts +1 -1
- package/swap/quote.js +28 -39
- package/swap/transaction.js +17 -26
- package/utils/events.js +20 -32
- package/utils/obligation.js +111 -135
- package/utils/simulate.js +16 -24
|
@@ -61,36 +61,36 @@ export declare class ReserveConfig implements StructClass {
|
|
|
61
61
|
static get r(): reified.StructClassReified<ReserveConfig, ReserveConfigFields>;
|
|
62
62
|
static phantom(): PhantomReified<ToTypeStr<ReserveConfig>>;
|
|
63
63
|
static get p(): reified.PhantomReified<"0x1f54a9a2d71799553197e9ea24557797c6398d6a65f2d4d3818c9304b75d5e21::reserve_config::ReserveConfig" | "0xf95b06141ed4a174f239417323bde3f209b972f5930d8521ea38a52aff3a6ddf::reserve_config::ReserveConfig">;
|
|
64
|
-
static get bcs(): import("@mysten/
|
|
65
|
-
open_ltv_pct: import("@mysten/
|
|
66
|
-
close_ltv_pct: import("@mysten/
|
|
67
|
-
max_close_ltv_pct: import("@mysten/
|
|
68
|
-
borrow_weight_bps: import("@mysten/
|
|
69
|
-
deposit_limit: import("@mysten/
|
|
70
|
-
borrow_limit: import("@mysten/
|
|
71
|
-
liquidation_bonus_bps: import("@mysten/
|
|
72
|
-
max_liquidation_bonus_bps: import("@mysten/
|
|
73
|
-
deposit_limit_usd: import("@mysten/
|
|
74
|
-
borrow_limit_usd: import("@mysten/
|
|
75
|
-
interest_rate_utils: import("@mysten/
|
|
64
|
+
static get bcs(): import("@mysten/bcs").BcsStruct<{
|
|
65
|
+
open_ltv_pct: import("@mysten/bcs").BcsType<number, number, "u8">;
|
|
66
|
+
close_ltv_pct: import("@mysten/bcs").BcsType<number, number, "u8">;
|
|
67
|
+
max_close_ltv_pct: import("@mysten/bcs").BcsType<number, number, "u8">;
|
|
68
|
+
borrow_weight_bps: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
69
|
+
deposit_limit: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
70
|
+
borrow_limit: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
71
|
+
liquidation_bonus_bps: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
72
|
+
max_liquidation_bonus_bps: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
73
|
+
deposit_limit_usd: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
74
|
+
borrow_limit_usd: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
75
|
+
interest_rate_utils: import("@mysten/bcs").BcsType<number[], Iterable<number> & {
|
|
76
76
|
length: number;
|
|
77
77
|
}, string>;
|
|
78
|
-
interest_rate_aprs: import("@mysten/
|
|
78
|
+
interest_rate_aprs: import("@mysten/bcs").BcsType<string[], Iterable<string | number | bigint> & {
|
|
79
79
|
length: number;
|
|
80
80
|
}, string>;
|
|
81
|
-
borrow_fee_bps: import("@mysten/
|
|
82
|
-
spread_fee_bps: import("@mysten/
|
|
83
|
-
protocol_liquidation_fee_bps: import("@mysten/
|
|
84
|
-
isolated: import("@mysten/
|
|
85
|
-
open_attributed_borrow_limit_usd: import("@mysten/
|
|
86
|
-
close_attributed_borrow_limit_usd: import("@mysten/
|
|
87
|
-
additional_fields: import("@mysten/
|
|
88
|
-
id: import("@mysten/
|
|
89
|
-
id: import("@mysten/
|
|
90
|
-
bytes: import("@mysten/
|
|
81
|
+
borrow_fee_bps: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
82
|
+
spread_fee_bps: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
83
|
+
protocol_liquidation_fee_bps: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
84
|
+
isolated: import("@mysten/bcs").BcsType<boolean, boolean, "bool">;
|
|
85
|
+
open_attributed_borrow_limit_usd: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
86
|
+
close_attributed_borrow_limit_usd: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
87
|
+
additional_fields: import("@mysten/bcs").BcsStruct<{
|
|
88
|
+
id: import("@mysten/bcs").BcsStruct<{
|
|
89
|
+
id: import("@mysten/bcs").BcsStruct<{
|
|
90
|
+
bytes: import("@mysten/bcs").BcsType<string, string, string>;
|
|
91
91
|
}, string>;
|
|
92
92
|
}, string>;
|
|
93
|
-
size: import("@mysten/
|
|
93
|
+
size: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
94
94
|
}, string>;
|
|
95
95
|
}, string>;
|
|
96
96
|
static fromFields(fields: Record<string, any>): ReserveConfig;
|
|
@@ -170,14 +170,14 @@ export declare class ReserveConfigBuilder implements StructClass {
|
|
|
170
170
|
static get r(): reified.StructClassReified<ReserveConfigBuilder, ReserveConfigBuilderFields>;
|
|
171
171
|
static phantom(): PhantomReified<ToTypeStr<ReserveConfigBuilder>>;
|
|
172
172
|
static get p(): reified.PhantomReified<"0x1f54a9a2d71799553197e9ea24557797c6398d6a65f2d4d3818c9304b75d5e21::reserve_config::ReserveConfigBuilder" | "0xf95b06141ed4a174f239417323bde3f209b972f5930d8521ea38a52aff3a6ddf::reserve_config::ReserveConfigBuilder">;
|
|
173
|
-
static get bcs(): import("@mysten/
|
|
174
|
-
fields: import("@mysten/
|
|
175
|
-
id: import("@mysten/
|
|
176
|
-
id: import("@mysten/
|
|
177
|
-
bytes: import("@mysten/
|
|
173
|
+
static get bcs(): import("@mysten/bcs").BcsStruct<{
|
|
174
|
+
fields: import("@mysten/bcs").BcsStruct<{
|
|
175
|
+
id: import("@mysten/bcs").BcsStruct<{
|
|
176
|
+
id: import("@mysten/bcs").BcsStruct<{
|
|
177
|
+
bytes: import("@mysten/bcs").BcsType<string, string, string>;
|
|
178
178
|
}, string>;
|
|
179
179
|
}, string>;
|
|
180
|
-
size: import("@mysten/
|
|
180
|
+
size: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
181
181
|
}, string>;
|
|
182
182
|
}, string>;
|
|
183
183
|
static fromFields(fields: Record<string, any>): ReserveConfigBuilder;
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import * as reified from "../../_framework/reified.js";
|
|
11
2
|
import { Bag } from "../../_dependencies/source/0x2/bag/structs.js";
|
|
12
3
|
import { decodeFromFields, decodeFromFieldsWithTypes, decodeFromJSONField, fieldToJSON, phantom, } from "../../_framework/reified.js";
|
|
@@ -19,10 +10,34 @@ export function isReserveConfig(type) {
|
|
|
19
10
|
return type === `${PKG_V1}::reserve_config::ReserveConfig`;
|
|
20
11
|
}
|
|
21
12
|
export class ReserveConfig {
|
|
13
|
+
__StructClass = true;
|
|
14
|
+
static $typeName = `${PKG_V1}::reserve_config::ReserveConfig`;
|
|
15
|
+
static $numTypeParams = 0;
|
|
16
|
+
static $isPhantom = [];
|
|
17
|
+
$typeName = ReserveConfig.$typeName;
|
|
18
|
+
$fullTypeName;
|
|
19
|
+
$typeArgs;
|
|
20
|
+
$isPhantom = ReserveConfig.$isPhantom;
|
|
21
|
+
openLtvPct;
|
|
22
|
+
closeLtvPct;
|
|
23
|
+
maxCloseLtvPct;
|
|
24
|
+
borrowWeightBps;
|
|
25
|
+
depositLimit;
|
|
26
|
+
borrowLimit;
|
|
27
|
+
liquidationBonusBps;
|
|
28
|
+
maxLiquidationBonusBps;
|
|
29
|
+
depositLimitUsd;
|
|
30
|
+
borrowLimitUsd;
|
|
31
|
+
interestRateUtils;
|
|
32
|
+
interestRateAprs;
|
|
33
|
+
borrowFeeBps;
|
|
34
|
+
spreadFeeBps;
|
|
35
|
+
protocolLiquidationFeeBps;
|
|
36
|
+
isolated;
|
|
37
|
+
openAttributedBorrowLimitUsd;
|
|
38
|
+
closeAttributedBorrowLimitUsd;
|
|
39
|
+
additionalFields;
|
|
22
40
|
constructor(typeArgs, fields) {
|
|
23
|
-
this.__StructClass = true;
|
|
24
|
-
this.$typeName = ReserveConfig.$typeName;
|
|
25
|
-
this.$isPhantom = ReserveConfig.$isPhantom;
|
|
26
41
|
this.$fullTypeName = composeSuiType(ReserveConfig.$typeName, ...typeArgs);
|
|
27
42
|
this.$typeArgs = typeArgs;
|
|
28
43
|
this.openLtvPct = fields.openLtvPct;
|
|
@@ -58,7 +73,7 @@ export class ReserveConfig {
|
|
|
58
73
|
bcs: ReserveConfig.bcs,
|
|
59
74
|
fromJSONField: (field) => ReserveConfig.fromJSONField(field),
|
|
60
75
|
fromJSON: (json) => ReserveConfig.fromJSON(json),
|
|
61
|
-
fetch: (client, id) =>
|
|
76
|
+
fetch: async (client, id) => ReserveConfig.fetch(client, id),
|
|
62
77
|
new: (fields) => {
|
|
63
78
|
return new ReserveConfig([], fields);
|
|
64
79
|
},
|
|
@@ -173,7 +188,11 @@ export class ReserveConfig {
|
|
|
173
188
|
};
|
|
174
189
|
}
|
|
175
190
|
toJSON() {
|
|
176
|
-
return
|
|
191
|
+
return {
|
|
192
|
+
$typeName: this.$typeName,
|
|
193
|
+
$typeArgs: this.$typeArgs,
|
|
194
|
+
...this.toJSONField(),
|
|
195
|
+
};
|
|
177
196
|
}
|
|
178
197
|
static fromJSONField(field) {
|
|
179
198
|
return ReserveConfig.reified().new({
|
|
@@ -204,29 +223,30 @@ export class ReserveConfig {
|
|
|
204
223
|
}
|
|
205
224
|
return ReserveConfig.fromJSONField(json);
|
|
206
225
|
}
|
|
207
|
-
static fetch(client, id) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
return ReserveConfig.fromBcs(object.content);
|
|
214
|
-
});
|
|
226
|
+
static async fetch(client, id) {
|
|
227
|
+
const { object } = await client.getObject({ objectId: id, include: { content: true } });
|
|
228
|
+
if (!isReserveConfig(object.type)) {
|
|
229
|
+
throw new Error(`object at id ${id} is not a ReserveConfig object`);
|
|
230
|
+
}
|
|
231
|
+
return ReserveConfig.fromBcs(object.content);
|
|
215
232
|
}
|
|
216
233
|
}
|
|
217
|
-
ReserveConfig.$typeName = `${PKG_V1}::reserve_config::ReserveConfig`;
|
|
218
|
-
ReserveConfig.$numTypeParams = 0;
|
|
219
|
-
ReserveConfig.$isPhantom = [];
|
|
220
234
|
/* ============================== ReserveConfigBuilder =============================== */
|
|
221
235
|
export function isReserveConfigBuilder(type) {
|
|
222
236
|
type = compressSuiType(type);
|
|
223
237
|
return type === `${PKG_V1}::reserve_config::ReserveConfigBuilder`;
|
|
224
238
|
}
|
|
225
239
|
export class ReserveConfigBuilder {
|
|
240
|
+
__StructClass = true;
|
|
241
|
+
static $typeName = `${PKG_V1}::reserve_config::ReserveConfigBuilder`;
|
|
242
|
+
static $numTypeParams = 0;
|
|
243
|
+
static $isPhantom = [];
|
|
244
|
+
$typeName = ReserveConfigBuilder.$typeName;
|
|
245
|
+
$fullTypeName;
|
|
246
|
+
$typeArgs;
|
|
247
|
+
$isPhantom = ReserveConfigBuilder.$isPhantom;
|
|
248
|
+
fields;
|
|
226
249
|
constructor(typeArgs, fields) {
|
|
227
|
-
this.__StructClass = true;
|
|
228
|
-
this.$typeName = ReserveConfigBuilder.$typeName;
|
|
229
|
-
this.$isPhantom = ReserveConfigBuilder.$isPhantom;
|
|
230
250
|
this.$fullTypeName = composeSuiType(ReserveConfigBuilder.$typeName, ...typeArgs);
|
|
231
251
|
this.$typeArgs = typeArgs;
|
|
232
252
|
this.fields = fields.fields;
|
|
@@ -244,7 +264,7 @@ export class ReserveConfigBuilder {
|
|
|
244
264
|
bcs: ReserveConfigBuilder.bcs,
|
|
245
265
|
fromJSONField: (field) => ReserveConfigBuilder.fromJSONField(field),
|
|
246
266
|
fromJSON: (json) => ReserveConfigBuilder.fromJSON(json),
|
|
247
|
-
fetch: (client, id) =>
|
|
267
|
+
fetch: async (client, id) => ReserveConfigBuilder.fetch(client, id),
|
|
248
268
|
new: (fields) => {
|
|
249
269
|
return new ReserveConfigBuilder([], fields);
|
|
250
270
|
},
|
|
@@ -287,7 +307,11 @@ export class ReserveConfigBuilder {
|
|
|
287
307
|
};
|
|
288
308
|
}
|
|
289
309
|
toJSON() {
|
|
290
|
-
return
|
|
310
|
+
return {
|
|
311
|
+
$typeName: this.$typeName,
|
|
312
|
+
$typeArgs: this.$typeArgs,
|
|
313
|
+
...this.toJSONField(),
|
|
314
|
+
};
|
|
291
315
|
}
|
|
292
316
|
static fromJSONField(field) {
|
|
293
317
|
return ReserveConfigBuilder.reified().new({
|
|
@@ -300,16 +324,11 @@ export class ReserveConfigBuilder {
|
|
|
300
324
|
}
|
|
301
325
|
return ReserveConfigBuilder.fromJSONField(json);
|
|
302
326
|
}
|
|
303
|
-
static fetch(client, id) {
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
return ReserveConfigBuilder.fromBcs(object.content);
|
|
310
|
-
});
|
|
327
|
+
static async fetch(client, id) {
|
|
328
|
+
const { object } = await client.getObject({ objectId: id, include: { content: true } });
|
|
329
|
+
if (!isReserveConfigBuilder(object.type)) {
|
|
330
|
+
throw new Error(`object at id ${id} is not a ReserveConfigBuilder object`);
|
|
331
|
+
}
|
|
332
|
+
return ReserveConfigBuilder.fromBcs(object.content);
|
|
311
333
|
}
|
|
312
334
|
}
|
|
313
|
-
ReserveConfigBuilder.$typeName = `${PKG_V1}::reserve_config::ReserveConfigBuilder`;
|
|
314
|
-
ReserveConfigBuilder.$numTypeParams = 0;
|
|
315
|
-
ReserveConfigBuilder.$isPhantom = [];
|
package/api/events.js
CHANGED
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { API_URL } from "@suilend/sui-fe";
|
|
1
|
+
import { API_URL } from "@suilend/sui-core";
|
|
11
2
|
/**
|
|
12
3
|
* Note: This SDK function is experimental and may change or require authentication in the future.
|
|
13
4
|
*/
|
|
14
|
-
export const fetchDownsampledApiReserveAssetDataEvents = (reserveId, days, sampleIntervalS) =>
|
|
5
|
+
export const fetchDownsampledApiReserveAssetDataEvents = async (reserveId, days, sampleIntervalS) => {
|
|
15
6
|
const url = `${API_URL}/events/downsampled-reserve-asset-data?reserveId=${reserveId}&days=${days}&sampleIntervalS=${sampleIntervalS}`;
|
|
16
|
-
const res =
|
|
17
|
-
const json =
|
|
7
|
+
const res = await fetch(url);
|
|
8
|
+
const json = await res.json();
|
|
18
9
|
return json;
|
|
19
|
-
}
|
|
10
|
+
};
|