@suilend/sdk 12.3.0-next.g22670e4 → 12.3.0-next.g97f4281
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client.d.ts +3 -0
- package/client.js +50 -12
- package/lib/initialize.d.ts +8 -0
- package/package.json +1 -1
- package/parsers/lendingMarket.d.ts +1 -0
- package/parsers/obligation.d.ts +2 -0
- package/parsers/reserve.d.ts +2 -0
- package/parsers/reserve.js +4 -2
- package/strategies.d.ts +2 -0
package/client.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { SuiClientTypes } from "@mysten/sui/client";
|
|
|
2
2
|
import { SuiGrpcClient } from "@mysten/sui/grpc";
|
|
3
3
|
import { Transaction, TransactionObjectArgument, TransactionObjectInput } from "@mysten/sui/transactions";
|
|
4
4
|
import { SuiPythClient } from "@pythnetwork/pyth-sui-js";
|
|
5
|
+
import BigNumber from "bignumber.js";
|
|
5
6
|
import { LendingMarket, ObligationOwnerCap } from "./_generated/suilend/lending-market/structs";
|
|
6
7
|
import { Obligation } from "./_generated/suilend/obligation/structs";
|
|
7
8
|
import { NewConfigArgs as CreateRateLimiterConfigArgs } from "./_generated/suilend/rate-limiter/functions";
|
|
@@ -79,6 +80,8 @@ export declare class SuilendClient {
|
|
|
79
80
|
receivers: string[];
|
|
80
81
|
weights: string[];
|
|
81
82
|
}>;
|
|
83
|
+
/** A reserve's confidence multiplier `k`, in bps; pass `parsedReserve.config.additionalFields.id`. 0 when unset. */
|
|
84
|
+
static getReserveConfidenceMultiplierBps(suiGrpcClient: SuiGrpcClient, additionalFieldsBagId: string): Promise<BigNumber>;
|
|
82
85
|
static createNewLendingMarket(registryId: string, lendingMarketType: string, transaction: Transaction): {
|
|
83
86
|
NestedResult: [number, number];
|
|
84
87
|
$kind: "NestedResult";
|
package/client.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { bcs } from "@mysten/sui/bcs";
|
|
1
2
|
import { SUI_CLOCK_OBJECT_ID, SUI_SYSTEM_STATE_OBJECT_ID, normalizeStructTag, normalizeSuiObjectId, toHex, } from "@mysten/sui/utils";
|
|
2
3
|
import { SuiPythClient } from "@pythnetwork/pyth-sui-js";
|
|
4
|
+
import BigNumber from "bignumber.js";
|
|
3
5
|
import { extractCTokenCoinType, getAllCoins, getSpendableCoin, } from "@suilend/sui-core";
|
|
4
6
|
import { phantom } from "./_generated/_framework/reified.js";
|
|
5
7
|
import { PKG_V10, setPublishedAt } from "./_generated/suilend/index.js";
|
|
@@ -154,6 +156,42 @@ export async function listAllOwnedObjects(suiGrpcClient, owner, type, include) {
|
|
|
154
156
|
cache.set(key, promise);
|
|
155
157
|
return promise;
|
|
156
158
|
}
|
|
159
|
+
// Only safe for a key with a fixed, known type tag; see findBagEntryByTypeSuffix
|
|
160
|
+
// for one that can legitimately be absent.
|
|
161
|
+
async function resolveDynamicFieldId(suiGrpcClient, parentId, nameType) {
|
|
162
|
+
const { dynamicField } = await suiGrpcClient.getDynamicField({
|
|
163
|
+
parentId,
|
|
164
|
+
name: { type: nameType, bcs: new Uint8Array([0]) },
|
|
165
|
+
});
|
|
166
|
+
return dynamicField.fieldId;
|
|
167
|
+
}
|
|
168
|
+
// For a key that's always present (getFeeReceivers), both calls' errors can
|
|
169
|
+
// propagate through this combined helper unguarded.
|
|
170
|
+
async function fetchDynamicFieldJson(suiGrpcClient, parentId, nameType) {
|
|
171
|
+
const fieldId = await resolveDynamicFieldId(suiGrpcClient, parentId, nameType);
|
|
172
|
+
const { object } = await suiGrpcClient.getObject({
|
|
173
|
+
objectId: fieldId,
|
|
174
|
+
include: { json: true },
|
|
175
|
+
});
|
|
176
|
+
return object.json;
|
|
177
|
+
}
|
|
178
|
+
// Scans by type-tag suffix, ignoring the package address: codegen doesn't
|
|
179
|
+
// track a struct's originally-defining address, only the current PUBLISHED_AT.
|
|
180
|
+
async function findBagEntryByTypeSuffix(suiGrpcClient, parentId, typeSuffix) {
|
|
181
|
+
let cursor = null;
|
|
182
|
+
while (true) {
|
|
183
|
+
const response = await suiGrpcClient.listDynamicFields({ parentId, cursor });
|
|
184
|
+
const match = response.dynamicFields.find((entry) => entry.name.type.endsWith(typeSuffix));
|
|
185
|
+
if (match)
|
|
186
|
+
return match;
|
|
187
|
+
if (!response.hasNextPage)
|
|
188
|
+
return undefined;
|
|
189
|
+
if (!response.cursor) {
|
|
190
|
+
throw new Error(`listDynamicFields for ${parentId} reported hasNextPage=true with no cursor to continue`);
|
|
191
|
+
}
|
|
192
|
+
cursor = response.cursor;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
157
195
|
export class SuilendClient {
|
|
158
196
|
lendingMarket;
|
|
159
197
|
suiGrpcClient;
|
|
@@ -250,22 +288,22 @@ export class SuilendClient {
|
|
|
250
288
|
});
|
|
251
289
|
}
|
|
252
290
|
static async getFeeReceivers(suiGrpcClient, lendingMarketId) {
|
|
253
|
-
const
|
|
254
|
-
parentId: lendingMarketId,
|
|
255
|
-
name: {
|
|
256
|
-
type: `${PKG_V10}::lending_market::FeeReceiversKey`,
|
|
257
|
-
bcs: new Uint8Array([0]),
|
|
258
|
-
},
|
|
259
|
-
});
|
|
260
|
-
const { object } = await suiGrpcClient.getObject({
|
|
261
|
-
objectId: dynamicField.fieldId,
|
|
262
|
-
include: { json: true },
|
|
263
|
-
});
|
|
264
|
-
const json = object.json;
|
|
291
|
+
const json = await fetchDynamicFieldJson(suiGrpcClient, lendingMarketId, `${PKG_V10}::lending_market::FeeReceiversKey`);
|
|
265
292
|
const receivers = json?.value?.receivers;
|
|
266
293
|
const weights = json?.value?.weights;
|
|
267
294
|
return { receivers, weights };
|
|
268
295
|
}
|
|
296
|
+
/** A reserve's confidence multiplier `k`, in bps; pass `parsedReserve.config.additionalFields.id`. 0 when unset. */
|
|
297
|
+
static async getReserveConfidenceMultiplierBps(suiGrpcClient, additionalFieldsBagId) {
|
|
298
|
+
const match = await findBagEntryByTypeSuffix(suiGrpcClient, additionalFieldsBagId, "::reserve_config::ConfidenceMultiplierKey");
|
|
299
|
+
if (!match)
|
|
300
|
+
return new BigNumber(0);
|
|
301
|
+
const { dynamicField } = await suiGrpcClient.getDynamicField({
|
|
302
|
+
parentId: additionalFieldsBagId,
|
|
303
|
+
name: match.name,
|
|
304
|
+
});
|
|
305
|
+
return new BigNumber(bcs.u64().parse(dynamicField.value.bcs));
|
|
306
|
+
}
|
|
269
307
|
static createNewLendingMarket(registryId, lendingMarketType, transaction) {
|
|
270
308
|
const [ownerCap, lendingMarket] = createLendingMarket(transaction, lendingMarketType, transaction.object(registryId));
|
|
271
309
|
transaction.moveCall({
|
package/lib/initialize.d.ts
CHANGED
|
@@ -167,6 +167,7 @@ export declare const initializeSuilendAll: (suiGrpcClient: SuiGrpcClient, market
|
|
|
167
167
|
isolated: boolean;
|
|
168
168
|
openAttributedBorrowLimitUsd: number;
|
|
169
169
|
closeAttributedBorrowLimitUsd: number;
|
|
170
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
170
171
|
interestRate: {
|
|
171
172
|
id: string;
|
|
172
173
|
utilPercent: BigNumber;
|
|
@@ -306,6 +307,7 @@ export declare const initializeSuilendAll: (suiGrpcClient: SuiGrpcClient, market
|
|
|
306
307
|
isolated: boolean;
|
|
307
308
|
openAttributedBorrowLimitUsd: number;
|
|
308
309
|
closeAttributedBorrowLimitUsd: number;
|
|
310
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
309
311
|
interestRate: {
|
|
310
312
|
id: string;
|
|
311
313
|
utilPercent: BigNumber;
|
|
@@ -423,6 +425,7 @@ export declare const initializeSuilend: (suiGrpcClient: SuiGrpcClient, suilendCl
|
|
|
423
425
|
isolated: boolean;
|
|
424
426
|
openAttributedBorrowLimitUsd: number;
|
|
425
427
|
closeAttributedBorrowLimitUsd: number;
|
|
428
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
426
429
|
interestRate: {
|
|
427
430
|
id: string;
|
|
428
431
|
utilPercent: BigNumber;
|
|
@@ -562,6 +565,7 @@ export declare const initializeSuilend: (suiGrpcClient: SuiGrpcClient, suilendCl
|
|
|
562
565
|
isolated: boolean;
|
|
563
566
|
openAttributedBorrowLimitUsd: number;
|
|
564
567
|
closeAttributedBorrowLimitUsd: number;
|
|
568
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
565
569
|
interestRate: {
|
|
566
570
|
id: string;
|
|
567
571
|
utilPercent: BigNumber;
|
|
@@ -708,6 +712,7 @@ export declare const initializeObligations: (suiGrpcClient: SuiGrpcClient, suile
|
|
|
708
712
|
isolated: boolean;
|
|
709
713
|
openAttributedBorrowLimitUsd: number;
|
|
710
714
|
closeAttributedBorrowLimitUsd: number;
|
|
715
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
711
716
|
interestRate: {
|
|
712
717
|
id: string;
|
|
713
718
|
utilPercent: BigNumber;
|
|
@@ -825,6 +830,7 @@ export declare const initializeObligations: (suiGrpcClient: SuiGrpcClient, suile
|
|
|
825
830
|
isolated: boolean;
|
|
826
831
|
openAttributedBorrowLimitUsd: number;
|
|
827
832
|
closeAttributedBorrowLimitUsd: number;
|
|
833
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
828
834
|
interestRate: {
|
|
829
835
|
id: string;
|
|
830
836
|
utilPercent: BigNumber;
|
|
@@ -966,6 +972,7 @@ export declare const initializeObligations: (suiGrpcClient: SuiGrpcClient, suile
|
|
|
966
972
|
isolated: boolean;
|
|
967
973
|
openAttributedBorrowLimitUsd: number;
|
|
968
974
|
closeAttributedBorrowLimitUsd: number;
|
|
975
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
969
976
|
interestRate: {
|
|
970
977
|
id: string;
|
|
971
978
|
utilPercent: BigNumber;
|
|
@@ -1083,6 +1090,7 @@ export declare const initializeObligations: (suiGrpcClient: SuiGrpcClient, suile
|
|
|
1083
1090
|
isolated: boolean;
|
|
1084
1091
|
openAttributedBorrowLimitUsd: number;
|
|
1085
1092
|
closeAttributedBorrowLimitUsd: number;
|
|
1093
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
1086
1094
|
interestRate: {
|
|
1087
1095
|
id: string;
|
|
1088
1096
|
utilPercent: BigNumber;
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@suilend/sdk","version":"12.3.0-next.
|
|
1
|
+
{"name":"@suilend/sdk","version":"12.3.0-next.g97f4281","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/_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/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","./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","./_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.d.ts","scripts":{"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.2","@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.2","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.0","prettier":"3.9.6","ts-node":"10.9.2","typescript":"6.0.3","vite":"8.3.0","vitest":"5.0.0"},"peerDependencies":{"@mysten/bcs":"^2.1.1","@mysten/sui":">=2.22.1 <3","@suilend/sui-core":"^2.0.1"},"type":"module"}
|
|
@@ -25,6 +25,7 @@ export declare const parseLendingMarket: (lendingMarket: LendingMarket<string>,
|
|
|
25
25
|
isolated: boolean;
|
|
26
26
|
openAttributedBorrowLimitUsd: number;
|
|
27
27
|
closeAttributedBorrowLimitUsd: number;
|
|
28
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
28
29
|
interestRate: {
|
|
29
30
|
id: string;
|
|
30
31
|
utilPercent: BigNumber;
|
package/parsers/obligation.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export declare const parseObligation: (obligation: Obligation<string>, parsedRes
|
|
|
45
45
|
isolated: boolean;
|
|
46
46
|
openAttributedBorrowLimitUsd: number;
|
|
47
47
|
closeAttributedBorrowLimitUsd: number;
|
|
48
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
48
49
|
interestRate: {
|
|
49
50
|
id: string;
|
|
50
51
|
utilPercent: BigNumber;
|
|
@@ -162,6 +163,7 @@ export declare const parseObligation: (obligation: Obligation<string>, parsedRes
|
|
|
162
163
|
isolated: boolean;
|
|
163
164
|
openAttributedBorrowLimitUsd: number;
|
|
164
165
|
closeAttributedBorrowLimitUsd: number;
|
|
166
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
165
167
|
interestRate: {
|
|
166
168
|
id: string;
|
|
167
169
|
utilPercent: BigNumber;
|
package/parsers/reserve.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ 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/source/0x2/bag/structs").Bag;
|
|
28
29
|
interestRate: {
|
|
29
30
|
id: string;
|
|
30
31
|
utilPercent: BigNumber;
|
|
@@ -147,6 +148,7 @@ export declare const parseReserveConfig: (reserve: Reserve<string>) => {
|
|
|
147
148
|
isolated: boolean;
|
|
148
149
|
openAttributedBorrowLimitUsd: number;
|
|
149
150
|
closeAttributedBorrowLimitUsd: number;
|
|
151
|
+
additionalFields: import("../_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
150
152
|
interestRate: {
|
|
151
153
|
id: string;
|
|
152
154
|
utilPercent: BigNumber;
|
package/parsers/reserve.js
CHANGED
|
@@ -122,7 +122,7 @@ export const parseReserveConfig = (reserve) => {
|
|
|
122
122
|
const isolated = config.isolated;
|
|
123
123
|
const openAttributedBorrowLimitUsd = Number(config.openAttributedBorrowLimitUsd.toString());
|
|
124
124
|
const closeAttributedBorrowLimitUsd = Number(config.closeAttributedBorrowLimitUsd.toString());
|
|
125
|
-
|
|
125
|
+
const additionalFields = config.additionalFields;
|
|
126
126
|
const interestRate = config.interestRateUtils.map((util, index) => ({
|
|
127
127
|
id: uuidv4(),
|
|
128
128
|
utilPercent: new BigNumber(util.toString()),
|
|
@@ -146,10 +146,12 @@ export const parseReserveConfig = (reserve) => {
|
|
|
146
146
|
isolated,
|
|
147
147
|
openAttributedBorrowLimitUsd,
|
|
148
148
|
closeAttributedBorrowLimitUsd,
|
|
149
|
-
|
|
149
|
+
additionalFields,
|
|
150
150
|
interestRate,
|
|
151
151
|
};
|
|
152
152
|
};
|
|
153
|
+
// additionalFields is a Bag; read the confidence multiplier via
|
|
154
|
+
// SuilendClient.getReserveConfidenceMultiplierBps(suiGrpcClient, additionalFields.id).
|
|
153
155
|
export const parsePoolRewardManager = (poolRewardManager, coinMetadataMap) => {
|
|
154
156
|
const $typeName = poolRewardManager.$typeName;
|
|
155
157
|
const id = poolRewardManager.id;
|
package/strategies.d.ts
CHANGED
|
@@ -73,6 +73,7 @@ export declare const getStrategySuiReserve: (reserveMap: Record<string, ParsedRe
|
|
|
73
73
|
isolated: boolean;
|
|
74
74
|
openAttributedBorrowLimitUsd: number;
|
|
75
75
|
closeAttributedBorrowLimitUsd: number;
|
|
76
|
+
additionalFields: import("./_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
76
77
|
interestRate: {
|
|
77
78
|
id: string;
|
|
78
79
|
utilPercent: BigNumber;
|
|
@@ -202,6 +203,7 @@ export declare const getStrategyDefaultCurrencyReserve: (reserveMap: Record<stri
|
|
|
202
203
|
isolated: boolean;
|
|
203
204
|
openAttributedBorrowLimitUsd: number;
|
|
204
205
|
closeAttributedBorrowLimitUsd: number;
|
|
206
|
+
additionalFields: import("./_generated/_dependencies/source/0x2/bag/structs").Bag;
|
|
205
207
|
interestRate: {
|
|
206
208
|
id: string;
|
|
207
209
|
utilPercent: BigNumber;
|