@1delta/margin-fetcher 0.0.175 → 0.0.177

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.
Files changed (25) hide show
  1. package/dist/index.js +125 -88
  2. package/dist/index.js.map +1 -1
  3. package/dist/lending/margin/loop/index.d.ts +1 -0
  4. package/dist/lending/margin/loop/index.d.ts.map +1 -1
  5. package/dist/lending/margin/loop/ranges/getMaxAmountOpen.d.ts +30 -0
  6. package/dist/lending/margin/loop/ranges/getMaxAmountOpen.d.ts.map +1 -0
  7. package/dist/lending/margin/loop/ranges/index.d.ts +2 -0
  8. package/dist/lending/margin/loop/ranges/index.d.ts.map +1 -0
  9. package/dist/lending/public-data/compound-v3/publicCallParse.d.ts.map +1 -1
  10. package/dist/lending/public-data/euler/fetcher/normalize.d.ts +17 -17
  11. package/dist/lending/public-data/euler/fetcher/normalize.d.ts.map +1 -1
  12. package/dist/lending/user-data/euler/userCallBuild.d.ts +35 -5
  13. package/dist/lending/user-data/euler/userCallBuild.d.ts.map +1 -1
  14. package/dist/lending/user-data/euler/userCallParse.d.ts +9 -1
  15. package/dist/lending/user-data/euler/userCallParse.d.ts.map +1 -1
  16. package/dist/lending/user-data/fetch-balances/e2e.d.ts +2 -3
  17. package/dist/lending/user-data/fetch-balances/e2e.d.ts.map +1 -1
  18. package/dist/lending/user-data/fetch-balances/prepare.d.ts +2 -1
  19. package/dist/lending/user-data/fetch-balances/prepare.d.ts.map +1 -1
  20. package/dist/lending/user-data/utils/createEulerMultiAccountTypeUserState.d.ts +9 -6
  21. package/dist/lending/user-data/utils/createEulerMultiAccountTypeUserState.d.ts.map +1 -1
  22. package/dist/lending/user-data/with-permissions/prepare.d.ts +2 -2
  23. package/dist/lending/user-data/with-permissions/prepare.d.ts.map +1 -1
  24. package/dist/utils/index.d.ts.map +1 -1
  25. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -7485,7 +7485,8 @@ var DISABLED_COMPOUNDS = {
7485
7485
  [Chain.ETHEREUM_MAINNET]: [Lender.CREAM_FINANCE]
7486
7486
  };
7487
7487
  var ENABLED_EULER_V2_CHAINS = [
7488
- Chain.BNB_SMART_CHAIN_MAINNET
7488
+ Chain.BNB_SMART_CHAIN_MAINNET,
7489
+ Chain.PLASMA_MAINNET
7489
7490
  ];
7490
7491
  var getLendersForChain = (c) => {
7491
7492
  let lenders = [];
@@ -17500,49 +17501,19 @@ function buildReverseLTVIndex(cluster) {
17500
17501
  }
17501
17502
  return index;
17502
17503
  }
17503
- function buildForwardLTVIndex(cluster) {
17504
- const index = /* @__PURE__ */ new Map();
17505
- for (const [addr, info] of cluster.vaultData) {
17506
- const borrowVault = addr.toLowerCase();
17507
- const entries = [];
17508
- for (const ltv of info.collateralLTVInfo) {
17509
- if (ltv.borrowLTV <= 0n) continue;
17510
- entries.push({
17511
- collateralVault: ltv.collateral.toLowerCase(),
17512
- ltv
17513
- });
17514
- }
17515
- if (entries.length > 0) {
17516
- index.set(borrowVault, entries);
17517
- }
17518
- }
17519
- return index;
17520
- }
17521
- function buildTokenConfig(vaultAddr, reverseLTV, forwardLTV, borrowVaults, clusterVaults) {
17504
+ function buildTokenConfig(vaultAddr, reverseLTV, borrowVaults, vaultData) {
17522
17505
  const config = {};
17523
17506
  const reverseEntries = reverseLTV.get(vaultAddr) ?? [];
17524
17507
  for (const { borrowVault, ltv } of reverseEntries) {
17525
17508
  if (!borrowVaults.has(borrowVault)) continue;
17526
17509
  config[borrowVault] = {
17527
17510
  category: borrowVault,
17511
+ label: findInfo(borrowVault, vaultData)?.vaultName ?? borrowVault,
17528
17512
  borrowCollateralFactor: ltvToNumber(ltv.borrowLTV),
17529
17513
  collateralFactor: ltvToNumber(ltv.liquidationLTV),
17530
17514
  borrowFactor: 1
17531
17515
  };
17532
17516
  }
17533
- if (borrowVaults.has(vaultAddr)) {
17534
- const forwardEntries = forwardLTV.get(vaultAddr) ?? [];
17535
- for (const { collateralVault } of forwardEntries) {
17536
- if (!clusterVaults.has(collateralVault)) continue;
17537
- if (config[collateralVault]) continue;
17538
- config[collateralVault] = {
17539
- category: collateralVault,
17540
- borrowCollateralFactor: 0,
17541
- collateralFactor: 0,
17542
- borrowFactor: 1
17543
- };
17544
- }
17545
- }
17546
17517
  return config;
17547
17518
  }
17548
17519
  function buildEModes(borrowVaults, cluster) {
@@ -17652,10 +17623,6 @@ function findInfo(addr, vaultData) {
17652
17623
  function normalizeCluster(cluster, opts) {
17653
17624
  const borrowVaults = identifyBorrowVaults(cluster);
17654
17625
  const reverseLTV = buildReverseLTVIndex(cluster);
17655
- const forwardLTV = buildForwardLTVIndex(cluster);
17656
- const clusterVaults = new Set(
17657
- [...cluster.vaultData.keys()].map((a) => a.toLowerCase())
17658
- );
17659
17626
  const collateralActiveVaults = /* @__PURE__ */ new Set();
17660
17627
  for (const [collateral, entries] of reverseLTV) {
17661
17628
  if (entries.some((e) => borrowVaults.has(e.borrowVault))) {
@@ -17669,9 +17636,8 @@ function normalizeCluster(cluster, opts) {
17669
17636
  const config = buildTokenConfig(
17670
17637
  norm,
17671
17638
  reverseLTV,
17672
- forwardLTV,
17673
17639
  borrowVaults,
17674
- clusterVaults
17640
+ cluster.vaultData
17675
17641
  );
17676
17642
  data[norm] = buildTokenEntry(
17677
17643
  info,
@@ -18284,7 +18250,83 @@ function createCompoundV2Entry(i, data, key, assetsIn, vToken, meta, claimableRe
18284
18250
  }
18285
18251
 
18286
18252
  // src/lending/user-data/euler/userCallBuild.ts
18287
- var DEFAULT_MAX_SUB_ACCOUNTS = 255;
18253
+ Array.from(
18254
+ { length: 256 },
18255
+ (_2, i) => i
18256
+ );
18257
+ var EULER_SUBGRAPH_BASE = "https://api.goldsky.com/api/public/project_cm4iagnemt1wp01xn4gh1agft/subgraphs";
18258
+ var EULER_SUBGRAPH_URLS = {
18259
+ "1": `${EULER_SUBGRAPH_BASE}/euler-v2-mainnet/latest/gn`,
18260
+ "10": `${EULER_SUBGRAPH_BASE}/euler-v2-optimism/latest/gn`,
18261
+ "56": `${EULER_SUBGRAPH_BASE}/euler-v2-bsc/latest/gn`,
18262
+ "100": `${EULER_SUBGRAPH_BASE}/euler-v2-gnosis/latest/gn`,
18263
+ "130": `${EULER_SUBGRAPH_BASE}/euler-v2-unichain/latest/gn`,
18264
+ "146": `${EULER_SUBGRAPH_BASE}/euler-v2-sonic/latest/gn`,
18265
+ "239": `${EULER_SUBGRAPH_BASE}/euler-v2-tac/latest/gn`,
18266
+ "480": `${EULER_SUBGRAPH_BASE}/euler-v2-worldchain/latest/gn`,
18267
+ "999": `${EULER_SUBGRAPH_BASE}/euler-v2-hyperevm/latest/gn`,
18268
+ "1923": `${EULER_SUBGRAPH_BASE}/euler-v2-swell/latest/gn`,
18269
+ "5000": `${EULER_SUBGRAPH_BASE}/euler-v2-mantle/latest/gn`,
18270
+ "8453": `${EULER_SUBGRAPH_BASE}/euler-v2-base/latest/gn`,
18271
+ "9745": `${EULER_SUBGRAPH_BASE}/euler-v2-plasma/latest/gn`,
18272
+ "42161": `${EULER_SUBGRAPH_BASE}/euler-v2-arbitrum/latest/gn`,
18273
+ "43114": `${EULER_SUBGRAPH_BASE}/euler-v2-avalanche/latest/gn`,
18274
+ "57073": `${EULER_SUBGRAPH_BASE}/euler-v2-ink/latest/gn`,
18275
+ "60808": `${EULER_SUBGRAPH_BASE}/euler-v2-bob/latest/gn`,
18276
+ "80094": `${EULER_SUBGRAPH_BASE}/euler-v2-berachain/latest/gn`
18277
+ };
18278
+ var SUBGRAPH_CACHE_TTL_MS = 3e4;
18279
+ var subgraphCache = /* @__PURE__ */ new Map();
18280
+ function fetchEulerSubAccountIndexes(chainId, owner) {
18281
+ const key = `${chainId}:${owner.toLowerCase()}`;
18282
+ const cached = subgraphCache.get(key);
18283
+ if (cached) return cached.promise;
18284
+ const promise = fetchSubAccountsFromSubgraph(chainId, owner).then((idxs) => idxs.length > 0 ? idxs : [0]).catch(() => [0]);
18285
+ const timer = setTimeout(
18286
+ () => subgraphCache.delete(key),
18287
+ SUBGRAPH_CACHE_TTL_MS
18288
+ );
18289
+ subgraphCache.set(key, { promise, timer });
18290
+ return promise;
18291
+ }
18292
+ async function fetchSubAccountsFromSubgraph(chainId, owner) {
18293
+ const url = EULER_SUBGRAPH_URLS[chainId];
18294
+ if (!url) return [0];
18295
+ const query2 = `{
18296
+ accounts(first: 100, where: { owner: "${owner.toLowerCase()}" }) {
18297
+ id
18298
+ subAccount
18299
+ }
18300
+ }`;
18301
+ const response = await fetch(url, {
18302
+ method: "POST",
18303
+ headers: { "Content-Type": "application/json" },
18304
+ body: JSON.stringify({ query: query2 })
18305
+ });
18306
+ if (!response.ok) return [0];
18307
+ const data = await response.json();
18308
+ const accounts = data?.data?.accounts;
18309
+ if (!accounts || accounts.length === 0) return [0];
18310
+ return accounts.map((a) => {
18311
+ const addr = a.subAccount || a.id;
18312
+ return getSubAccountIndex(addr);
18313
+ });
18314
+ }
18315
+ var RESOLVED_STORE_TTL_MS = 6e4;
18316
+ var resolvedIndexesStore = /* @__PURE__ */ new Map();
18317
+ function getResolvedEulerSubAccountIndexes(chainId, account) {
18318
+ return resolvedIndexesStore.get(`${chainId}:${account.toLowerCase()}`)?.indexes;
18319
+ }
18320
+ function storeResolvedIndexes(chainId, account, indexes) {
18321
+ const key = `${chainId}:${account.toLowerCase()}`;
18322
+ const existing = resolvedIndexesStore.get(key);
18323
+ if (existing) clearTimeout(existing.timer);
18324
+ const timer = setTimeout(
18325
+ () => resolvedIndexesStore.delete(key),
18326
+ RESOLVED_STORE_TTL_MS
18327
+ );
18328
+ resolvedIndexesStore.set(key, { indexes, timer });
18329
+ }
18288
18330
  function getSubAccountAddress(owner, index) {
18289
18331
  const prefix = owner.slice(0, 40);
18290
18332
  const suffix = index.toString(16).padStart(2, "0");
@@ -18293,20 +18335,23 @@ function getSubAccountAddress(owner, index) {
18293
18335
  function getSubAccountIndex(addr) {
18294
18336
  return parseInt(addr.slice(40), 16);
18295
18337
  }
18296
- var buildEulerUserCall = (chainId, lender, account, maxSubAccounts = DEFAULT_MAX_SUB_ACCOUNTS) => {
18338
+ function resolveSubAccountIndexes(account, subAccountIndexes) {
18339
+ const ownerIndex = getSubAccountIndex(account);
18340
+ const indices = new Set(subAccountIndexes);
18341
+ indices.add(ownerIndex);
18342
+ return [...indices].sort((a, b) => a - b);
18343
+ }
18344
+ var buildEulerUserCall = async (chainId, lender, account, subAccountIndexes) => {
18345
+ console.log("subAccountIndexes", subAccountIndexes);
18297
18346
  if (!ENABLED_EULER_V2_CHAINS.includes(chainId)) return [];
18298
18347
  const config = eulerConfigs()?.[lender]?.[chainId];
18299
18348
  if (!config) return [];
18300
18349
  const accountLensAddress = config.accountLens;
18301
18350
  const evcAddress = config.evc;
18302
18351
  if (!accountLensAddress || !evcAddress) return [];
18303
- const ownerIndex = getSubAccountIndex(account);
18304
- const indices = /* @__PURE__ */ new Set();
18305
- indices.add(ownerIndex);
18306
- for (let i = 0; indices.size < maxSubAccounts && i < 256; i++) {
18307
- indices.add(i);
18308
- }
18309
- const sortedIndices = [...indices].sort((a, b) => a - b);
18352
+ const indexes = subAccountIndexes ?? await fetchEulerSubAccountIndexes(chainId, account);
18353
+ const sortedIndices = resolveSubAccountIndexes(account, indexes);
18354
+ storeResolvedIndexes(chainId, account, indexes);
18310
18355
  return sortedIndices.map((i) => ({
18311
18356
  address: accountLensAddress,
18312
18357
  name: "getAccountEnabledVaultsInfo",
@@ -18315,7 +18360,7 @@ var buildEulerUserCall = (chainId, lender, account, maxSubAccounts = DEFAULT_MAX
18315
18360
  };
18316
18361
 
18317
18362
  // src/lending/user-data/fetch-balances/prepare.ts
18318
- function buildUserCall(chainId, lender, account, params) {
18363
+ async function buildUserCall(chainId, lender, account, params) {
18319
18364
  if (isAaveV2Type(lender)) return buildAaveV2UserCall(chainId, lender, account);
18320
18365
  if (isAaveV3Type(lender)) return buildAaveV3UserCall(chainId, lender, account);
18321
18366
  if (isInit(lender)) return buildInitUserCall(chainId, lender, account);
@@ -18324,7 +18369,7 @@ function buildUserCall(chainId, lender, account, params) {
18324
18369
  if (isCompoundV3Type(lender))
18325
18370
  return buildCompoundV3UserCall(chainId, lender, account);
18326
18371
  if (isEulerType(lender))
18327
- return buildEulerUserCall(chainId, lender, account);
18372
+ return buildEulerUserCall(chainId, lender, account, params?.subAccountIndexes);
18328
18373
  return buildCompoundV2UserCall(chainId, lender, account);
18329
18374
  }
18330
18375
  function organizeUserQueries(queries) {
@@ -19207,16 +19252,16 @@ function createMorphoEntryFromMarketWithLens(balanceInfo, metaMap, chainId, lend
19207
19252
 
19208
19253
  // src/lending/user-data/utils/createEulerMultiAccountTypeUserState.ts
19209
19254
  function createEulerMultiAccountTypeUserState(payload, lenderData, histData) {
19210
- const subAccountKeys = Object.keys(payload.lendingPositions ?? {});
19255
+ const subAccountIndexes = Object.keys(payload.lendingPositions ?? {});
19211
19256
  const marketUids = getMarketUidsFromMeta(lenderData);
19212
19257
  const { chainId, account } = payload;
19213
19258
  const data = [];
19214
- for (let j = 0; j < subAccountKeys.length; j++) {
19215
- const subAccount = subAccountKeys[j];
19216
- const controller = payload.controllers?.[subAccount];
19259
+ for (let j = 0; j < subAccountIndexes.length; j++) {
19260
+ const subAccountIndex = subAccountIndexes[j];
19261
+ const controller = payload.controllers?.[subAccountIndex];
19217
19262
  const configKey = controller ?? String(LENDER_MODE_NO_MODE);
19218
19263
  const userConfig = {
19219
- id: subAccount,
19264
+ id: subAccountIndex,
19220
19265
  selectedMode: configKey,
19221
19266
  isWhitelisted: true
19222
19267
  };
@@ -19233,9 +19278,9 @@ function createEulerMultiAccountTypeUserState(payload, lenderData, histData) {
19233
19278
  let adjustedDebt = 0;
19234
19279
  for (let i = 0; i < marketUids.length; i++) {
19235
19280
  const marketUid = marketUids[i];
19236
- if (!lenderData?.[marketUid] || !payload.lendingPositions[subAccount][marketUid])
19281
+ if (!lenderData?.[marketUid] || !payload.lendingPositions[subAccountIndex][marketUid])
19237
19282
  continue;
19238
- const pos = payload.lendingPositions[subAccount][marketUid];
19283
+ const pos = payload.lendingPositions[subAccountIndex][marketUid];
19239
19284
  const { depositsUSD, debtUSD } = pos;
19240
19285
  const depositsUSDOracle = pos.depositsUSDOracle ?? depositsUSD;
19241
19286
  const debtUSDOracle = pos.debtUSDOracle ?? debtUSD;
@@ -19271,9 +19316,9 @@ function createEulerMultiAccountTypeUserState(payload, lenderData, histData) {
19271
19316
  debt,
19272
19317
  adjustedDebt,
19273
19318
  nav,
19274
- deposits24h: histData[subAccount]?.totalDeposits24h,
19275
- debt24h: histData[subAccount]?.totalDebt24h,
19276
- nav24h: histData[subAccount]?.totalDeposits24h - histData[subAccount]?.totalDebt24h
19319
+ deposits24h: histData[subAccountIndex]?.totalDeposits24h,
19320
+ debt24h: histData[subAccountIndex]?.totalDebt24h,
19321
+ nav24h: histData[subAccountIndex]?.totalDeposits24h - histData[subAccountIndex]?.totalDebt24h
19277
19322
  };
19278
19323
  const aprData2 = {
19279
19324
  apr: safeDivide(depositInterest - borrowInterest, nav),
@@ -19299,7 +19344,7 @@ function createEulerMultiAccountTypeUserState(payload, lenderData, histData) {
19299
19344
  const price = getOraclePrice(lenderData[marketUid]);
19300
19345
  const bcf = config?.borrowCollateralFactor ?? 1;
19301
19346
  const bf = config?.borrowFactor ?? 1;
19302
- const pos = payload.lendingPositions[subAccount]?.[marketUid];
19347
+ const pos = payload.lendingPositions[subAccountIndex]?.[marketUid];
19303
19348
  if (pos) {
19304
19349
  let withdrawable;
19305
19350
  if (!pos.collateralEnabled || config?.collateralDisabled) {
@@ -19334,7 +19379,7 @@ function createEulerMultiAccountTypeUserState(payload, lenderData, histData) {
19334
19379
  if (borrowLiquidity != null) {
19335
19380
  borrowable = String(Math.min(Number(borrowable), borrowLiquidity));
19336
19381
  }
19337
- payload.lendingPositions[subAccount][marketUid] = {
19382
+ payload.lendingPositions[subAccountIndex][marketUid] = {
19338
19383
  marketUid,
19339
19384
  underlying: lenderData[marketUid].underlying,
19340
19385
  deposits: "0",
@@ -19354,13 +19399,13 @@ function createEulerMultiAccountTypeUserState(payload, lenderData, histData) {
19354
19399
  }
19355
19400
  }
19356
19401
  data.push({
19357
- accountId: subAccount,
19402
+ accountId: subAccountIndex,
19358
19403
  health: balanceData2.debt === 0 ? null : balanceData2.adjustedDebt > 0 ? balanceData2.borrowDiscountedCollateral / balanceData2.adjustedDebt : balanceData2.collateral / balanceData2.debt,
19359
19404
  borrowCapacityUSD: creditLine,
19360
19405
  userConfig,
19361
19406
  balanceData: balanceData2,
19362
19407
  aprData: aprData2,
19363
- positions: Object.values(payload.lendingPositions[subAccount])
19408
+ positions: Object.values(payload.lendingPositions[subAccountIndex])
19364
19409
  });
19365
19410
  }
19366
19411
  return {
@@ -19372,14 +19417,9 @@ function createEulerMultiAccountTypeUserState(payload, lenderData, histData) {
19372
19417
  }
19373
19418
 
19374
19419
  // src/lending/user-data/euler/userCallParse.ts
19375
- var getEulerUserDataConverter = (lender, chainId, account, metaMap, maxSubAccounts = DEFAULT_MAX_SUB_ACCOUNTS) => {
19376
- const ownerIndex = getSubAccountIndex(account);
19377
- const indices = /* @__PURE__ */ new Set();
19378
- indices.add(ownerIndex);
19379
- for (let i = 0; indices.size < maxSubAccounts && i < 256; i++) {
19380
- indices.add(i);
19381
- }
19382
- const sortedIndices = [...indices].sort((a, b) => a - b);
19420
+ var getEulerUserDataConverter = (lender, chainId, account, metaMap, subAccountIndexes) => {
19421
+ const effectiveIndexes = subAccountIndexes ?? getResolvedEulerSubAccountIndexes(chainId, account) ?? [0];
19422
+ const sortedIndices = resolveSubAccountIndexes(account, effectiveIndexes);
19383
19423
  const expectedNumberOfCalls = sortedIndices.length;
19384
19424
  return [
19385
19425
  (_data) => {
@@ -19395,14 +19435,11 @@ var getEulerUserDataConverter = (lender, chainId, account, metaMap, maxSubAccoun
19395
19435
  const evcInfo = result.evcAccountInfo ?? result[0];
19396
19436
  const vaultAccounts = result.vaultAccountInfo ?? result[1] ?? [];
19397
19437
  if (vaultAccounts.length === 0) continue;
19398
- const subAccountAddr = getSubAccountAddress(
19399
- account,
19400
- sortedIndices[idx]
19401
- ).toLowerCase();
19438
+ const subAccountId = String(sortedIndices[idx]);
19402
19439
  const enabledControllers = (evcInfo?.enabledControllers ?? []).map((a) => a.toLowerCase());
19403
19440
  const controller = enabledControllers.length > 0 ? enabledControllers[0] : void 0;
19404
19441
  if (controller) {
19405
- controllers[subAccountAddr] = controller;
19442
+ controllers[subAccountId] = controller;
19406
19443
  }
19407
19444
  const positions = {};
19408
19445
  let totalDebt24h = 0;
@@ -19446,8 +19483,8 @@ var getEulerUserDataConverter = (lender, chainId, account, metaMap, maxSubAccoun
19446
19483
  };
19447
19484
  }
19448
19485
  if (Object.keys(positions).length > 0) {
19449
- lendingPositions[subAccountAddr] = positions;
19450
- histData[subAccountAddr] = { totalDebt24h, totalDeposits24h };
19486
+ lendingPositions[subAccountId] = positions;
19487
+ histData[subAccountId] = { totalDebt24h, totalDeposits24h };
19451
19488
  }
19452
19489
  }
19453
19490
  if (Object.keys(lendingPositions).length === 0) {
@@ -19491,7 +19528,7 @@ function getUserDataConverter(lender, chainId, account, params, meta) {
19491
19528
  meta?.[lender]
19492
19529
  );
19493
19530
  if (isEulerType(lender))
19494
- return getEulerUserDataConverter(lender, chainId, account, meta?.[lender]);
19531
+ return getEulerUserDataConverter(lender, chainId, account, meta?.[lender], params?.subAccountIndexes);
19495
19532
  return getCompoundV2UserDataConverter(
19496
19533
  lender,
19497
19534
  chainId,
@@ -24279,7 +24316,7 @@ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient3, allowFa
24279
24316
  const queries = organizeUserQueries(queriesRaw);
24280
24317
  for (const query2 of queries) {
24281
24318
  const abi = getAbi2(query2.lender);
24282
- const callData = buildUserCall(
24319
+ const callData = await buildUserCall(
24283
24320
  chainId,
24284
24321
  query2.lender,
24285
24322
  query2.account,
@@ -24301,13 +24338,13 @@ var getLenderUserDataResult = async (chainId, queriesRaw, getEvmClient3, allowFa
24301
24338
  logs
24302
24339
  );
24303
24340
  };
24304
- var prepareLenderUserDataRpcCalls = (chainId, queriesRaw, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, blockTag = "latest", meta, allowFailure = true) => {
24341
+ var prepareLenderUserDataRpcCalls = async (chainId, queriesRaw, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, blockTag = "latest", allowFailure = true) => {
24305
24342
  let calls = [];
24306
24343
  const multicallAddress = getEvmChain(chainId).contracts?.multicall3?.address;
24307
24344
  const queries = organizeUserQueries(queriesRaw);
24308
24345
  for (const query2 of queries) {
24309
24346
  const abi = getAbi2(query2.lender);
24310
- const callData = buildUserCall(
24347
+ const callData = await buildUserCall(
24311
24348
  chainId,
24312
24349
  query2.lender,
24313
24350
  query2.account,
@@ -24398,7 +24435,7 @@ var EMPTY_TOKEN_APPROVAL_META = {
24398
24435
  tokenAddresses: [],
24399
24436
  spenders: []
24400
24437
  };
24401
- function prepareMergedRpcCalls(chainId, balanceQueries, permissionParams, tokenApprovalParams, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, blockTag = "latest", allowFailure = true) {
24438
+ async function prepareMergedRpcCalls(chainId, balanceQueries, permissionParams, tokenApprovalParams, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, blockTag = "latest", allowFailure = true) {
24402
24439
  const multicallAddress = getEvmChain(chainId).contracts?.multicall3?.address;
24403
24440
  let tokenApprovalPreparedCalls = [];
24404
24441
  let tokenApprovalMeta = EMPTY_TOKEN_APPROVAL_META;
@@ -24423,7 +24460,7 @@ function prepareMergedRpcCalls(chainId, balanceQueries, permissionParams, tokenA
24423
24460
  const organizedQueries = organizeUserQueries(balanceQueries);
24424
24461
  for (const query2 of organizedQueries) {
24425
24462
  const abi = getAbi2(query2.lender);
24426
- const callData = buildUserCall(
24463
+ const callData = await buildUserCall(
24427
24464
  chainId,
24428
24465
  query2.lender,
24429
24466
  query2.account,
@@ -24459,7 +24496,7 @@ function prepareMergedRpcCalls(chainId, balanceQueries, permissionParams, tokenA
24459
24496
  balanceQueries
24460
24497
  };
24461
24498
  }
24462
- function prepareMergedMulticallParams(chainId, balanceQueries, permissionParams, tokenApprovalParams) {
24499
+ async function prepareMergedMulticallParams(chainId, balanceQueries, permissionParams, tokenApprovalParams) {
24463
24500
  let tokenApprovalCalls = [];
24464
24501
  let tokenApprovalAbis = [];
24465
24502
  let tokenApprovalMeta = EMPTY_TOKEN_APPROVAL_META;
@@ -24488,7 +24525,7 @@ function prepareMergedMulticallParams(chainId, balanceQueries, permissionParams,
24488
24525
  const organizedQueries = organizeUserQueries(balanceQueries);
24489
24526
  for (const query2 of organizedQueries) {
24490
24527
  const abi = getAbi2(query2.lender);
24491
- const callData = buildUserCall(
24528
+ const callData = await buildUserCall(
24492
24529
  chainId,
24493
24530
  query2.lender,
24494
24531
  query2.account,
@@ -24550,7 +24587,7 @@ function parseMergedResult(chainId, rawResults, prepared, lenderState) {
24550
24587
 
24551
24588
  // src/lending/user-data/with-permissions/e2e.ts
24552
24589
  async function getMergedUserData(chainId, balanceQueries, permissionParams, lenderState, multicallRetry3, batchSize = MULTICALL_DEFAULT_BATCH_SIZE, maxRetries2 = 3, tokenApprovalParams) {
24553
- const prepared = prepareMergedMulticallParams(
24590
+ const prepared = await prepareMergedMulticallParams(
24554
24591
  chainId,
24555
24592
  balanceQueries,
24556
24593
  permissionParams,