@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 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 { dynamicField } = await suiGrpcClient.getDynamicField({
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({
@@ -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.g22670e4","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"}
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;
@@ -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;
@@ -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;
@@ -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
- // additionalFields
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
- // additionalFields,
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;