@1delta/margin-fetcher 0.0.235 → 0.0.237
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +414 -7
- package/dist/index.js.map +1 -1
- package/dist/lending/public-data/fetchLender.d.ts.map +1 -1
- package/dist/lending/public-data/fluid/index.d.ts +3 -0
- package/dist/lending/public-data/fluid/index.d.ts.map +1 -0
- package/dist/lending/public-data/fluid/publicCallBuild.d.ts +49 -0
- package/dist/lending/public-data/fluid/publicCallBuild.d.ts.map +1 -0
- package/dist/lending/public-data/fluid/publicCallParse.d.ts +18 -0
- package/dist/lending/public-data/fluid/publicCallParse.d.ts.map +1 -0
- package/dist/prices/oracle-prices/fetchOraclePrices.d.ts +2 -1
- package/dist/prices/oracle-prices/fetchOraclePrices.d.ts.map +1 -1
- package/dist/prices/oracle-prices/fetchers/fluid.d.ts +743 -0
- package/dist/prices/oracle-prices/fetchers/fluid.d.ts.map +1 -0
- package/dist/prices/oracle-prices/fetchers/index.d.ts +1 -0
- package/dist/prices/oracle-prices/fetchers/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/marketName.d.ts.map +1 -1
- package/dist/vaults/fluid/fetchPublic.d.ts +21 -0
- package/dist/vaults/fluid/fetchPublic.d.ts.map +1 -0
- package/dist/vaults/fluid/index.d.ts +5 -0
- package/dist/vaults/fluid/index.d.ts.map +1 -0
- package/dist/vaults/fluid/publicCallBuild.d.ts +16 -0
- package/dist/vaults/fluid/publicCallBuild.d.ts.map +1 -0
- package/dist/vaults/fluid/publicCallParse.d.ts +15 -0
- package/dist/vaults/fluid/publicCallParse.d.ts.map +1 -0
- package/dist/vaults/fluid/types.d.ts +57 -0
- package/dist/vaults/fluid/types.d.ts.map +1 -0
- package/dist/vaults/index.d.ts +2 -0
- package/dist/vaults/index.d.ts.map +1 -0
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { fetchGeneralYields, fetchGeneralYieldsByMarketUid } from './yields';
|
|
|
4
4
|
export { fetchPendlePrices, fetchOraclePrices, selectAssetGroupPrices, type TokenListInput, type FetchOraclePricesOptions, type OraclePriceEntry, type StructuredOraclePrices, type USDPriceMap, type MorphoMarketOverrides, type ListaMarketOverrides, type OracleDiagnostics, type OraclePricesResult, type ChainDiagnostic, type TrackerDiagnostic, type StaleFeedEntry, } from './prices';
|
|
5
5
|
export { getLendersForChain, filterLendersByProtocol, getAavesForChain, getLenderAssets, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isAaveV3Type, isAaveV2Type, isYLDR, isAaveV32Type, isAaveType, isMultiMarket, createMarketUid, } from './utils';
|
|
6
6
|
export { fetchFlashLiquidityForChain, attachPricesToFlashLiquidity, } from './flash-liquidity';
|
|
7
|
+
export { buildFluidFTokensCall, getFluidFTokensConverter, fetchFluidFTokens, type FluidFToken, type FluidFTokens, } from './vaults';
|
|
7
8
|
export { type GenericCurrency, type GenericTokenList, type ParsedResponse, type ChainLinkResponse, type LenderRewardsMap, type NumberMap, type FullLenderRewardsMap, type AdditionalYields, type TokenList, type LenderUserQuery, type UserLendingPosition, type LenderUserResponse, type AaveV2UserReserveResponse, type AaveV3UserReserveResponse, type MorphoUserReserveResponse, type CompoundV3UserReserveResponse, type AaveV3Public, type LenderPublicBase, type LenderYields, type LenderTotalAmounts, type LenderConfigMap, type LenderConfigData, type ModeBase, type EModeData, type AaveV2Public, type CompoundV3Public, type UserApr, type InitUserReserveResponse, type InitPublic, type LenderData, type PoolData, type ConfigEntry, } from './types';
|
|
8
9
|
export { computeDepositDelta, computeWithdrawDelta, computeBorrowDelta, computeRepayDelta, getHealthFactor, getBorrowCapacity, getAssetConfig, computePostTradeMetrics, EMPTY_BALANCE, } from './lending/margin/base';
|
|
9
10
|
export type { PostTradeMetrics } from './lending/margin/base';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { parseAbi, formatEther, BaseError, encodeFunctionData, formatUnits, decodeFunctionResult, decodeAbiParameters, AbiEncodingLengthMismatchError, concatHex, isAddress, InvalidAddressError, pad, stringToHex, boolToHex, integerRegex, numberToHex, bytesRegex, BytesSizeMismatchError, arrayRegex, UnsupportedPackedAbiType } from './chunk-ZVIJSUIM.js';
|
|
2
2
|
import './chunk-BYTNVMX7.js';
|
|
3
3
|
import './chunk-PR4QN5HX.js';
|
|
4
|
-
import { Lender, isAaveType, isCompoundV3, isMultiMarket, isSiloV2Type, isSiloV3Type, isAaveV4Type, isInit, isMorphoType, isCompoundV2Type, isVenusType, isSumerType, AAVE_V3_LENDERS, AAVE_V2_LENDERS, isAaveV2Type, isAaveV32Type, isAaveV3Type, isEulerType, isYLDR, isCompoundV3Type, isLista, isTectonicType, isBenqiType } from '@1delta/lender-registry';
|
|
4
|
+
import { Lender, isAaveType, isCompoundV3, isMultiMarket, isSiloV2Type, isSiloV3Type, isAaveV4Type, isInit, isMorphoType, isCompoundV2Type, isVenusType, isSumerType, AAVE_V3_LENDERS, AAVE_V2_LENDERS, isAaveV2Type, isAaveV32Type, isAaveV3Type, isEulerType, isFluid, isYLDR, isCompoundV3Type, isLista, isTectonicType, isBenqiType } from '@1delta/lender-registry';
|
|
5
5
|
export { isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR } from '@1delta/lender-registry';
|
|
6
6
|
import lodash from 'lodash';
|
|
7
7
|
import { getEvmChain, getEvmClient, getEvmClientUniversal, multicallRetryUniversal } from '@1delta/providers';
|
|
8
|
-
import { MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, MorphoBlueAbi } from '@1delta/abis';
|
|
8
|
+
import { FluidLendingResolverAbi, MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, FluidVaultResolverAbi, MorphoBlueAbi } from '@1delta/abis';
|
|
9
9
|
export { MorphoLensAbi } from '@1delta/abis';
|
|
10
10
|
import { prepareDebitDataMulticall, prepareLenderDebitMulticall, parseDebitDataResult, parseLenderDebitResult, getPermit2ContractAddress, getCompoundV3CometAddress as getCompoundV3CometAddress$1, getMorphoAddress, getAaveCollateralTokenAddress, getSiloHalfForUnderlying, InitMarginAddresses } from '@1delta/calldata-sdk';
|
|
11
11
|
import { BALANCER_V2_FORKS, BALANCER_V3_FORKS, UNISWAP_V4_FORKS, isFlashLoanSourceExcluded, FLASH_LOAN_IDS } from '@1delta/dex-registry';
|
|
@@ -6281,7 +6281,9 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
6281
6281
|
siloMarkets: {},
|
|
6282
6282
|
siloPeripherals: {},
|
|
6283
6283
|
siloMarketsV3: {},
|
|
6284
|
-
siloPeripheralsV3: {}
|
|
6284
|
+
siloPeripheralsV3: {},
|
|
6285
|
+
fluidResolvers: {},
|
|
6286
|
+
fluidVaults: {}
|
|
6285
6287
|
};
|
|
6286
6288
|
function getGlobalData2() {
|
|
6287
6289
|
return globalThis[GLOBAL_LENDER_DATA_KEY];
|
|
@@ -6309,6 +6311,7 @@ var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
|
|
|
6309
6311
|
var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
|
|
6310
6312
|
var siloMarkets = () => getGlobalData2()?.siloMarkets;
|
|
6311
6313
|
var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
|
|
6314
|
+
var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
|
|
6312
6315
|
function aaveV4SpokeLenderKey(spoke) {
|
|
6313
6316
|
if (!spoke || !spoke.startsWith("0x") || spoke.length !== 42) {
|
|
6314
6317
|
throw new Error(`aaveV4SpokeLenderKey: invalid spoke address ${spoke}`);
|
|
@@ -6402,6 +6405,7 @@ var LENDER_SHORT_NAMES = {
|
|
|
6402
6405
|
[Lender.COMPOUND_V3_WETH]: "Comp. WETH",
|
|
6403
6406
|
[Lender.COMPOUND_V3_WSTETH]: "Comp. wstETH",
|
|
6404
6407
|
[Lender.EULER_V2]: "Euler V2",
|
|
6408
|
+
[Lender.FLUID]: "Fluid",
|
|
6405
6409
|
[Lender.FLUX_FINANCE]: "Flux",
|
|
6406
6410
|
[Lender.GRANARY]: "Granary",
|
|
6407
6411
|
[Lender.HANA]: "Hana",
|
|
@@ -6412,7 +6416,7 @@ var LENDER_SHORT_NAMES = {
|
|
|
6412
6416
|
[Lender.MERIDIAN]: "Meridian"
|
|
6413
6417
|
};
|
|
6414
6418
|
function formatUnderscoreString(input) {
|
|
6415
|
-
const _in = input.replace("MORPHO_BLUE", "MB");
|
|
6419
|
+
const _in = input.replace("MORPHO_BLUE", "MB").replace(/^FLUID_/, "Fluid ");
|
|
6416
6420
|
return _in.split("_").map((word, index) => {
|
|
6417
6421
|
if (index === 0) {
|
|
6418
6422
|
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
@@ -6421,6 +6425,7 @@ function formatUnderscoreString(input) {
|
|
|
6421
6425
|
}).join(" ");
|
|
6422
6426
|
}
|
|
6423
6427
|
function lenderShortName(lender) {
|
|
6428
|
+
if (lender?.startsWith("FLUID")) return "Fluid";
|
|
6424
6429
|
return LENDER_SHORT_NAMES[lender] ?? formatUnderscoreString(lender);
|
|
6425
6430
|
}
|
|
6426
6431
|
|
|
@@ -19140,8 +19145,211 @@ var getSiloV3ReservesDataConverter = (lender, chainId, prices, additionalYields,
|
|
|
19140
19145
|
SILO_V3_CALLS_PER_PAIR
|
|
19141
19146
|
];
|
|
19142
19147
|
};
|
|
19148
|
+
var { chunk: chunk4 } = lodash;
|
|
19149
|
+
var buildFluidCall = (chainId, _lender) => {
|
|
19150
|
+
const resolvers = fluidResolvers()?.[chainId];
|
|
19151
|
+
if (!resolvers) return [];
|
|
19152
|
+
return [
|
|
19153
|
+
{
|
|
19154
|
+
address: resolvers.vaultResolver,
|
|
19155
|
+
name: "getVaultsEntireData",
|
|
19156
|
+
params: []
|
|
19157
|
+
}
|
|
19158
|
+
];
|
|
19159
|
+
};
|
|
19143
19160
|
|
|
19144
|
-
// src/lending/public-data/
|
|
19161
|
+
// src/lending/public-data/fluid/publicCallParse.ts
|
|
19162
|
+
var FLUID_EEE_LOWER = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
19163
|
+
var normalizeUnderlying = (addr) => addr === FLUID_EEE_LOWER ? zeroAddress : addr;
|
|
19164
|
+
var FLUID_RATE_SCALE = 100;
|
|
19165
|
+
var scaleFluidRate = (raw) => {
|
|
19166
|
+
if (raw === void 0 || raw === null) return 0;
|
|
19167
|
+
return Number(raw) / FLUID_RATE_SCALE;
|
|
19168
|
+
};
|
|
19169
|
+
var getFluidPublicDataConverter = (_lender, chainId, prices, additionalYields, tokenList = {}) => {
|
|
19170
|
+
const expectedNumberOfCalls = 1;
|
|
19171
|
+
return [
|
|
19172
|
+
(data) => {
|
|
19173
|
+
if (data.length !== expectedNumberOfCalls) return void 0;
|
|
19174
|
+
const [vaultEntireData] = data;
|
|
19175
|
+
const out = {};
|
|
19176
|
+
for (const vault of vaultEntireData ?? []) {
|
|
19177
|
+
const parsed = parseVault(
|
|
19178
|
+
vault,
|
|
19179
|
+
chainId,
|
|
19180
|
+
prices,
|
|
19181
|
+
additionalYields,
|
|
19182
|
+
tokenList
|
|
19183
|
+
);
|
|
19184
|
+
if (parsed) {
|
|
19185
|
+
out[parsed.lender] = {
|
|
19186
|
+
data: parsed.data,
|
|
19187
|
+
params: parsed.params,
|
|
19188
|
+
chainId
|
|
19189
|
+
};
|
|
19190
|
+
}
|
|
19191
|
+
}
|
|
19192
|
+
return out;
|
|
19193
|
+
},
|
|
19194
|
+
expectedNumberOfCalls
|
|
19195
|
+
];
|
|
19196
|
+
};
|
|
19197
|
+
function parseVault(vault, chainId, prices, additionalYields, tokenList) {
|
|
19198
|
+
const vaultAddress = (vault.vault ?? "").toLowerCase();
|
|
19199
|
+
const constants = vault.constantVariables;
|
|
19200
|
+
const configs = vault.configs;
|
|
19201
|
+
const rates = vault.exchangePricesAndRates;
|
|
19202
|
+
const totals = vault.totalSupplyAndBorrow;
|
|
19203
|
+
const limits = vault.limitsAndAvailability;
|
|
19204
|
+
if (!vaultAddress || !constants || !configs || !rates || !totals) {
|
|
19205
|
+
return void 0;
|
|
19206
|
+
}
|
|
19207
|
+
if (vault.isSmartCol || vault.isSmartDebt) return void 0;
|
|
19208
|
+
const rawCollateral = (constants.supplyToken?.token0 ?? constants.supplyToken ?? "").toString().toLowerCase();
|
|
19209
|
+
const rawLoan = (constants.borrowToken?.token0 ?? constants.borrowToken ?? "").toString().toLowerCase();
|
|
19210
|
+
if (!rawCollateral || !rawLoan) return void 0;
|
|
19211
|
+
const collateralAddress = normalizeUnderlying(rawCollateral);
|
|
19212
|
+
const loanAddress = normalizeUnderlying(rawLoan);
|
|
19213
|
+
const vaultId = Number(constants.vaultId ?? 0);
|
|
19214
|
+
const lender = `FLUID_${vaultId}`;
|
|
19215
|
+
const collateralMeta = tokenList[collateralAddress];
|
|
19216
|
+
const loanMeta = tokenList[loanAddress];
|
|
19217
|
+
const colDecimals = Number(
|
|
19218
|
+
constants.supplyDecimals ?? collateralMeta?.decimals ?? 18
|
|
19219
|
+
);
|
|
19220
|
+
const borrowDecimals = Number(
|
|
19221
|
+
constants.borrowDecimals ?? loanMeta?.decimals ?? 18
|
|
19222
|
+
);
|
|
19223
|
+
const totalSupply = Number(
|
|
19224
|
+
parseRawAmount(totals.totalSupplyVault?.toString(), colDecimals)
|
|
19225
|
+
);
|
|
19226
|
+
const totalBorrow = Number(
|
|
19227
|
+
parseRawAmount(totals.totalBorrowVault?.toString(), borrowDecimals)
|
|
19228
|
+
);
|
|
19229
|
+
const borrowable = Number(
|
|
19230
|
+
parseRawAmount(limits?.borrowable?.toString(), borrowDecimals)
|
|
19231
|
+
);
|
|
19232
|
+
const collateralPriceKey = toOracleKey(collateralMeta?.assetGroup) ?? toGenericPriceKey(collateralAddress, chainId);
|
|
19233
|
+
const loanPriceKey = toOracleKey(loanMeta?.assetGroup) ?? toGenericPriceKey(loanAddress, chainId);
|
|
19234
|
+
const collateralPrice = prices[collateralPriceKey] ?? 0;
|
|
19235
|
+
const loanPrice = prices[loanPriceKey] ?? 0;
|
|
19236
|
+
const ltv = Number(configs.collateralFactor ?? 0) / BPS;
|
|
19237
|
+
const liquidationThreshold = Number(configs.liquidationThreshold ?? 0) / BPS;
|
|
19238
|
+
const liquidationPenalty = Number(configs.liquidationPenalty ?? 0) / BPS;
|
|
19239
|
+
const supplyRate = scaleFluidRate(rates.supplyRateVault);
|
|
19240
|
+
const borrowRate = scaleFluidRate(rates.borrowRateVault);
|
|
19241
|
+
const utilization = totalSupply > 0 ? totalBorrow / totalSupply : 0;
|
|
19242
|
+
const data = {};
|
|
19243
|
+
const collateralMarketUid = createMarketUid(chainId, lender, collateralAddress);
|
|
19244
|
+
data[collateralMarketUid] = {
|
|
19245
|
+
marketUid: collateralMarketUid,
|
|
19246
|
+
name: "Collateral " + (collateralMeta?.symbol ?? ""),
|
|
19247
|
+
poolId: collateralAddress,
|
|
19248
|
+
underlying: collateralAddress,
|
|
19249
|
+
asset: collateralMeta,
|
|
19250
|
+
totalDeposits: totalSupply,
|
|
19251
|
+
totalDebtStable: 0,
|
|
19252
|
+
totalDebt: 0,
|
|
19253
|
+
totalLiquidity: totalSupply,
|
|
19254
|
+
borrowLiquidity: 0,
|
|
19255
|
+
totalDepositsUSD: totalSupply * collateralPrice,
|
|
19256
|
+
totalDebtStableUSD: 0,
|
|
19257
|
+
totalDebtUSD: 0,
|
|
19258
|
+
totalLiquidityUSD: totalSupply * collateralPrice,
|
|
19259
|
+
borrowLiquidityUSD: 0,
|
|
19260
|
+
utilization: 0,
|
|
19261
|
+
depositRate: supplyRate,
|
|
19262
|
+
// vault collateral earns the supply side rate
|
|
19263
|
+
variableBorrowRate: 0,
|
|
19264
|
+
stableBorrowRate: 0,
|
|
19265
|
+
intrinsicYield: additionalYields?.intrinsicYields?.[collateralPriceKey] ?? 0,
|
|
19266
|
+
rewards: [],
|
|
19267
|
+
decimals: colDecimals,
|
|
19268
|
+
config: {
|
|
19269
|
+
"0": {
|
|
19270
|
+
category: 0,
|
|
19271
|
+
borrowCollateralFactor: ltv,
|
|
19272
|
+
collateralFactor: liquidationThreshold,
|
|
19273
|
+
borrowFactor: 1,
|
|
19274
|
+
collateralDisabled: false,
|
|
19275
|
+
debtDisabled: true
|
|
19276
|
+
}
|
|
19277
|
+
},
|
|
19278
|
+
liquidationBonus: liquidationPenalty,
|
|
19279
|
+
collateralActive: true,
|
|
19280
|
+
borrowingEnabled: false,
|
|
19281
|
+
depositsEnabled: true,
|
|
19282
|
+
hasStable: false,
|
|
19283
|
+
isActive: true,
|
|
19284
|
+
isFrozen: false
|
|
19285
|
+
};
|
|
19286
|
+
const loanMarketUid = createMarketUid(chainId, lender, loanAddress);
|
|
19287
|
+
data[loanMarketUid] = {
|
|
19288
|
+
marketUid: loanMarketUid,
|
|
19289
|
+
name: "Loan " + (loanMeta?.symbol ?? ""),
|
|
19290
|
+
poolId: loanAddress,
|
|
19291
|
+
underlying: loanAddress,
|
|
19292
|
+
asset: loanMeta,
|
|
19293
|
+
totalDeposits: 0,
|
|
19294
|
+
totalDebtStable: 0,
|
|
19295
|
+
totalDebt: totalBorrow,
|
|
19296
|
+
totalLiquidity: borrowable,
|
|
19297
|
+
borrowLiquidity: borrowable,
|
|
19298
|
+
totalDepositsUSD: 0,
|
|
19299
|
+
totalDebtStableUSD: 0,
|
|
19300
|
+
totalDebtUSD: totalBorrow * loanPrice,
|
|
19301
|
+
totalLiquidityUSD: borrowable * loanPrice,
|
|
19302
|
+
borrowLiquidityUSD: borrowable * loanPrice,
|
|
19303
|
+
utilization,
|
|
19304
|
+
depositRate: 0,
|
|
19305
|
+
variableBorrowRate: borrowRate,
|
|
19306
|
+
stableBorrowRate: 0,
|
|
19307
|
+
intrinsicYield: additionalYields?.intrinsicYields?.[loanPriceKey] ?? 0,
|
|
19308
|
+
rewards: [],
|
|
19309
|
+
decimals: borrowDecimals,
|
|
19310
|
+
config: {
|
|
19311
|
+
"0": {
|
|
19312
|
+
category: 0,
|
|
19313
|
+
borrowCollateralFactor: 0,
|
|
19314
|
+
collateralFactor: 0,
|
|
19315
|
+
borrowFactor: 1,
|
|
19316
|
+
collateralDisabled: true,
|
|
19317
|
+
debtDisabled: false
|
|
19318
|
+
}
|
|
19319
|
+
},
|
|
19320
|
+
liquidationBonus: 0,
|
|
19321
|
+
collateralActive: false,
|
|
19322
|
+
borrowingEnabled: true,
|
|
19323
|
+
depositsEnabled: false,
|
|
19324
|
+
hasStable: false,
|
|
19325
|
+
isActive: true,
|
|
19326
|
+
isFrozen: false
|
|
19327
|
+
};
|
|
19328
|
+
return {
|
|
19329
|
+
lender,
|
|
19330
|
+
data,
|
|
19331
|
+
params: {
|
|
19332
|
+
vault: {
|
|
19333
|
+
lender,
|
|
19334
|
+
vaultAddress,
|
|
19335
|
+
vaultId,
|
|
19336
|
+
collateralAddress,
|
|
19337
|
+
loanAddress,
|
|
19338
|
+
collateralDecimals: colDecimals,
|
|
19339
|
+
loanDecimals: borrowDecimals,
|
|
19340
|
+
oracle: configs.oracle,
|
|
19341
|
+
rebalancer: configs.rebalancer,
|
|
19342
|
+
liquidationThreshold,
|
|
19343
|
+
ltv,
|
|
19344
|
+
liquidationPenalty,
|
|
19345
|
+
oraclePriceOperate: configs.oraclePriceOperate?.toString(),
|
|
19346
|
+
oraclePriceLiquidate: configs.oraclePriceLiquidate?.toString(),
|
|
19347
|
+
isSmartCol: !!vault.isSmartCol,
|
|
19348
|
+
isSmartDebt: !!vault.isSmartDebt
|
|
19349
|
+
}
|
|
19350
|
+
}
|
|
19351
|
+
};
|
|
19352
|
+
}
|
|
19145
19353
|
function getMorphoTypeMarketConverter(lender, chainId, prices, additionalYields, tokenList = {}, marketsOverride) {
|
|
19146
19354
|
if (lender.startsWith("LISTA_DAO"))
|
|
19147
19355
|
return getListaMarketDataConverter(
|
|
@@ -19178,6 +19386,7 @@ function buildLenderCall(chainId, lender) {
|
|
|
19178
19386
|
if (isAaveV4Type(lender)) return buildAaveV4LenderReserveCall(chainId, lender);
|
|
19179
19387
|
if (isSiloV2Type(lender)) return buildSiloV2LenderReserveCall(chainId, lender);
|
|
19180
19388
|
if (isSiloV3Type(lender)) return buildSiloV3LenderReserveCall(chainId, lender);
|
|
19389
|
+
if (isFluid(lender)) return buildFluidCall(chainId);
|
|
19181
19390
|
return [];
|
|
19182
19391
|
}
|
|
19183
19392
|
function getLenderDataConverter(lender, chainId, prices, additionalYields, tokenList = {}) {
|
|
@@ -19262,6 +19471,14 @@ function getLenderDataConverter(lender, chainId, prices, additionalYields, token
|
|
|
19262
19471
|
additionalYields,
|
|
19263
19472
|
tokenList
|
|
19264
19473
|
);
|
|
19474
|
+
if (isFluid(lender))
|
|
19475
|
+
return getFluidPublicDataConverter(
|
|
19476
|
+
lender,
|
|
19477
|
+
chainId,
|
|
19478
|
+
prices,
|
|
19479
|
+
additionalYields,
|
|
19480
|
+
tokenList
|
|
19481
|
+
);
|
|
19265
19482
|
return [() => null, 0];
|
|
19266
19483
|
}
|
|
19267
19484
|
var getAbi = (lender) => {
|
|
@@ -19286,6 +19503,8 @@ var getAbi = (lender) => {
|
|
|
19286
19503
|
return [...SiloAbi, ...SiloLensAbi, ...InterestRateModelV2Abi];
|
|
19287
19504
|
if (isSiloV3Type(lender))
|
|
19288
19505
|
return [...SiloAbi, ...SiloLensAbi, ...InterestRateModelV2Abi];
|
|
19506
|
+
if (isFluid(lender))
|
|
19507
|
+
return [...FluidVaultResolverAbi];
|
|
19289
19508
|
if (isSumerType(lender)) return [...SumerLensAbi, ...SumerComptrollerAbi];
|
|
19290
19509
|
if (lender === Lender.TAKARA) return [...TakaraMarketStateAbi];
|
|
19291
19510
|
if (isCompoundV2Type(lender)) return VenusLensAbi;
|
|
@@ -31258,6 +31477,88 @@ var siloV3Fetcher = {
|
|
|
31258
31477
|
parse: parseSiloV3Results,
|
|
31259
31478
|
getAbi: getSiloV3Abi
|
|
31260
31479
|
};
|
|
31480
|
+
var FLUID_EEE_LOWER2 = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
31481
|
+
var normalizeUnderlying2 = (addr) => addr === FLUID_EEE_LOWER2 ? zeroAddress : addr;
|
|
31482
|
+
function priceColInDebt(raw, colDec, debtDec) {
|
|
31483
|
+
return formatMorphoPrice(raw, debtDec, colDec + 9);
|
|
31484
|
+
}
|
|
31485
|
+
function getFluidCalls(chainId) {
|
|
31486
|
+
const resolvers = fluidResolvers()?.[chainId];
|
|
31487
|
+
if (!resolvers) return [];
|
|
31488
|
+
const call = {
|
|
31489
|
+
address: resolvers.vaultResolver,
|
|
31490
|
+
name: "getVaultsEntireData",
|
|
31491
|
+
params: []
|
|
31492
|
+
};
|
|
31493
|
+
return [
|
|
31494
|
+
{
|
|
31495
|
+
calls: [call],
|
|
31496
|
+
// Empty placeholder — populated per-vault inside `parse` from the
|
|
31497
|
+
// resolver response. Kept as an empty object to match the shape
|
|
31498
|
+
// other fetchers expose.
|
|
31499
|
+
meta: { vaults: [] },
|
|
31500
|
+
lender: Lender.FLUID
|
|
31501
|
+
}
|
|
31502
|
+
];
|
|
31503
|
+
}
|
|
31504
|
+
function parseFluidResults(data, _meta, context) {
|
|
31505
|
+
const { chainId, usdPrices, tokenList } = context;
|
|
31506
|
+
const entries = [];
|
|
31507
|
+
const vaults = data[0];
|
|
31508
|
+
if (!Array.isArray(vaults) || vaults.length === 0) return entries;
|
|
31509
|
+
for (const vault of vaults) {
|
|
31510
|
+
try {
|
|
31511
|
+
if (vault.isSmartCol || vault.isSmartDebt) continue;
|
|
31512
|
+
const constants = vault.constantVariables;
|
|
31513
|
+
const configs = vault.configs;
|
|
31514
|
+
if (!constants || !configs) continue;
|
|
31515
|
+
const rawCol = (constants.supplyToken?.token0 ?? constants.supplyToken ?? "").toString().toLowerCase();
|
|
31516
|
+
const rawLoan = (constants.borrowToken?.token0 ?? constants.borrowToken ?? "").toString().toLowerCase();
|
|
31517
|
+
if (!rawCol || !rawLoan) continue;
|
|
31518
|
+
const collateral = normalizeUnderlying2(rawCol);
|
|
31519
|
+
const loan = normalizeUnderlying2(rawLoan);
|
|
31520
|
+
const colDec = tokenList?.[collateral]?.decimals ?? 18;
|
|
31521
|
+
const loanDec = tokenList?.[loan]?.decimals ?? 18;
|
|
31522
|
+
const rawPrice = configs.oraclePriceOperate?.toString() ?? "0";
|
|
31523
|
+
if (!rawPrice || rawPrice === "0") continue;
|
|
31524
|
+
const priceDebtPerCol = priceColInDebt(rawPrice, colDec, loanDec);
|
|
31525
|
+
if (!Number.isFinite(priceDebtPerCol) || priceDebtPerCol === 0) continue;
|
|
31526
|
+
const vaultId = Number(constants.vaultId ?? 0);
|
|
31527
|
+
const lenderKey = `${Lender.FLUID}_${vaultId}`;
|
|
31528
|
+
const loanOracleKey = tokenList?.[loan]?.assetGroup ?? `${chainId}-${loan}`;
|
|
31529
|
+
const loanUSD = usdPrices[loanOracleKey] ?? usdPrices[loan];
|
|
31530
|
+
if (!loanUSD) continue;
|
|
31531
|
+
entries.push({
|
|
31532
|
+
asset: loan,
|
|
31533
|
+
price: 1,
|
|
31534
|
+
priceUSD: loanUSD,
|
|
31535
|
+
marketUid: createMarketUid(chainId, lenderKey, loan),
|
|
31536
|
+
targetLender: lenderKey,
|
|
31537
|
+
description: "Fluid loan asset",
|
|
31538
|
+
staticBase: true,
|
|
31539
|
+
baseAsset: loan
|
|
31540
|
+
});
|
|
31541
|
+
entries.push({
|
|
31542
|
+
asset: collateral,
|
|
31543
|
+
price: priceDebtPerCol,
|
|
31544
|
+
priceUSD: priceDebtPerCol * loanUSD,
|
|
31545
|
+
marketUid: createMarketUid(chainId, lenderKey, collateral),
|
|
31546
|
+
targetLender: lenderKey,
|
|
31547
|
+
baseAsset: loan
|
|
31548
|
+
});
|
|
31549
|
+
} catch {
|
|
31550
|
+
}
|
|
31551
|
+
}
|
|
31552
|
+
return entries;
|
|
31553
|
+
}
|
|
31554
|
+
function getFluidAbi() {
|
|
31555
|
+
return FluidVaultResolverAbi;
|
|
31556
|
+
}
|
|
31557
|
+
var fluidFetcher = {
|
|
31558
|
+
getCalls: getFluidCalls,
|
|
31559
|
+
parse: parseFluidResults,
|
|
31560
|
+
getAbi: getFluidAbi
|
|
31561
|
+
};
|
|
31261
31562
|
|
|
31262
31563
|
// src/prices/oracle-prices/fetchers/siloV2Graphql.ts
|
|
31263
31564
|
async function fetchSiloV2GraphQLMarkets(chainId) {
|
|
@@ -31707,6 +32008,11 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31707
32008
|
() => siloV3Fetcher.getCalls(chainId),
|
|
31708
32009
|
getCallsErrors
|
|
31709
32010
|
) : [];
|
|
32011
|
+
const fluidResults = isActive("fluid") ? safeGetCalls(
|
|
32012
|
+
"fluid",
|
|
32013
|
+
() => fluidFetcher.getCalls(chainId),
|
|
32014
|
+
getCallsErrors
|
|
32015
|
+
) : [];
|
|
31710
32016
|
const aaveGroup = buildGroup(
|
|
31711
32017
|
"aave",
|
|
31712
32018
|
aaveResults,
|
|
@@ -31761,6 +32067,12 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31761
32067
|
siloV3Fetcher.parse,
|
|
31762
32068
|
getSiloV3Abi()
|
|
31763
32069
|
);
|
|
32070
|
+
const fluidGroup = buildGroup(
|
|
32071
|
+
"fluid",
|
|
32072
|
+
fluidResults,
|
|
32073
|
+
fluidFetcher.parse,
|
|
32074
|
+
getFluidAbi()
|
|
32075
|
+
);
|
|
31764
32076
|
const allGroups = [
|
|
31765
32077
|
aaveGroup,
|
|
31766
32078
|
compoundV2Group,
|
|
@@ -31770,7 +32082,8 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31770
32082
|
aaveV4Group,
|
|
31771
32083
|
morphoGroup,
|
|
31772
32084
|
siloV2Group,
|
|
31773
|
-
siloV3Group
|
|
32085
|
+
siloV3Group,
|
|
32086
|
+
fluidGroup
|
|
31774
32087
|
];
|
|
31775
32088
|
const totalCalls = allGroups.reduce((s, g) => s + g.calls.length, 0);
|
|
31776
32089
|
if (totalCalls === 0 && !isActive("morpho")) {
|
|
@@ -31798,6 +32111,7 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31798
32111
|
listaData,
|
|
31799
32112
|
eulerData,
|
|
31800
32113
|
aaveV4Data,
|
|
32114
|
+
fluidData,
|
|
31801
32115
|
morphoGqlEntries,
|
|
31802
32116
|
siloV2GqlEntries,
|
|
31803
32117
|
siloV3GqlEntries
|
|
@@ -31850,6 +32164,14 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31850
32164
|
allowFailure,
|
|
31851
32165
|
rpcOverrides
|
|
31852
32166
|
),
|
|
32167
|
+
executeGroup(
|
|
32168
|
+
fluidGroup,
|
|
32169
|
+
chainId,
|
|
32170
|
+
chainBatchSize,
|
|
32171
|
+
retries,
|
|
32172
|
+
allowFailure,
|
|
32173
|
+
rpcOverrides
|
|
32174
|
+
),
|
|
31853
32175
|
morphoGqlPromise,
|
|
31854
32176
|
siloV2GqlPromise,
|
|
31855
32177
|
siloV3GqlPromise
|
|
@@ -31901,6 +32223,7 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31901
32223
|
{ group: listaGroup, data: listaData },
|
|
31902
32224
|
{ group: eulerGroup, data: eulerData },
|
|
31903
32225
|
{ group: aaveV4Group, data: aaveV4Data },
|
|
32226
|
+
{ group: fluidGroup, data: fluidData },
|
|
31904
32227
|
...siloV2GqlEntries != null ? [] : [{ group: siloV2Group, data: siloV2Data }],
|
|
31905
32228
|
...siloV3GqlEntries != null ? [] : [{ group: siloV3Group, data: siloV3Data }],
|
|
31906
32229
|
...useMorphoGql ? [] : [{ group: morphoGroup, data: morphoData }]
|
|
@@ -31987,6 +32310,7 @@ async function fetchOraclePrices(chainIds, rpcOverrides, lists = {}, retries = 3
|
|
|
31987
32310
|
true,
|
|
31988
32311
|
(t) => !!t.meta.baseAssetSource
|
|
31989
32312
|
);
|
|
32313
|
+
parseTrackers(fluidGroup, fluidData.results, false);
|
|
31990
32314
|
if (siloV2GqlEntries != null) {
|
|
31991
32315
|
const diag2 = {
|
|
31992
32316
|
lender: "SILO_V2 (GraphQL)",
|
|
@@ -32537,6 +32861,89 @@ function attachPricesToFlashLiquidity(chainId, liq, prices, list = {}) {
|
|
|
32537
32861
|
return liqCopy;
|
|
32538
32862
|
}
|
|
32539
32863
|
|
|
32864
|
+
// src/vaults/fluid/publicCallBuild.ts
|
|
32865
|
+
var buildFluidFTokensCall = (chainId) => {
|
|
32866
|
+
const resolvers = fluidResolvers()?.[chainId];
|
|
32867
|
+
if (!resolvers) return [];
|
|
32868
|
+
return [
|
|
32869
|
+
{
|
|
32870
|
+
address: resolvers.lendingResolver,
|
|
32871
|
+
name: "getFTokensEntireData",
|
|
32872
|
+
params: []
|
|
32873
|
+
}
|
|
32874
|
+
];
|
|
32875
|
+
};
|
|
32876
|
+
|
|
32877
|
+
// src/vaults/fluid/publicCallParse.ts
|
|
32878
|
+
var FLUID_EEE_LOWER3 = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
32879
|
+
var normalizeUnderlying3 = (addr) => addr === FLUID_EEE_LOWER3 ? zeroAddress : addr;
|
|
32880
|
+
var FLUID_RATE_SCALE2 = 100;
|
|
32881
|
+
var scaleFluidRate2 = (raw) => {
|
|
32882
|
+
if (raw === void 0 || raw === null) return 0;
|
|
32883
|
+
return Number(raw) / FLUID_RATE_SCALE2;
|
|
32884
|
+
};
|
|
32885
|
+
var getFluidFTokensConverter = (chainId, prices = {}, tokenList = {}) => {
|
|
32886
|
+
const expectedNumberOfCalls = 1;
|
|
32887
|
+
return [
|
|
32888
|
+
(data) => {
|
|
32889
|
+
if (data.length !== expectedNumberOfCalls) return void 0;
|
|
32890
|
+
const [fTokenDetails] = data;
|
|
32891
|
+
return parseFTokens(fTokenDetails ?? [], chainId, prices, tokenList);
|
|
32892
|
+
},
|
|
32893
|
+
expectedNumberOfCalls
|
|
32894
|
+
];
|
|
32895
|
+
};
|
|
32896
|
+
function parseFTokens(fTokens, chainId, prices, tokenList) {
|
|
32897
|
+
const out = {};
|
|
32898
|
+
for (const ft of fTokens) {
|
|
32899
|
+
const rawAsset = (ft.asset ?? "").toString().toLowerCase();
|
|
32900
|
+
if (!rawAsset) continue;
|
|
32901
|
+
const underlying = normalizeUnderlying3(rawAsset);
|
|
32902
|
+
const assetMeta = tokenList[underlying];
|
|
32903
|
+
const decimals = Number(ft.decimals ?? assetMeta?.decimals ?? 18);
|
|
32904
|
+
const totalAssetsFormatted = Number(
|
|
32905
|
+
parseRawAmount(ft.totalAssets?.toString(), decimals)
|
|
32906
|
+
);
|
|
32907
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(underlying, chainId);
|
|
32908
|
+
const priceUsd = prices[oracleKey] ?? 0;
|
|
32909
|
+
const supplyRate = scaleFluidRate2(ft.supplyRate);
|
|
32910
|
+
const rewardsRate = scaleFluidRate2(ft.rewardsRate);
|
|
32911
|
+
const entry = {
|
|
32912
|
+
address: ft.tokenAddress,
|
|
32913
|
+
underlying,
|
|
32914
|
+
symbol: ft.symbol ?? "",
|
|
32915
|
+
name: ft.name ?? "",
|
|
32916
|
+
decimals,
|
|
32917
|
+
totalAssets: ft.totalAssets?.toString() ?? "0",
|
|
32918
|
+
totalSupply: ft.totalSupply?.toString() ?? "0",
|
|
32919
|
+
convertToShares: ft.convertToShares?.toString() ?? "0",
|
|
32920
|
+
convertToAssets: ft.convertToAssets?.toString() ?? "0",
|
|
32921
|
+
supplyRate,
|
|
32922
|
+
rewardsRate,
|
|
32923
|
+
depositRate: supplyRate + rewardsRate,
|
|
32924
|
+
isNativeUnderlying: !!ft.isNativeUnderlying,
|
|
32925
|
+
eip2612Deposits: !!ft.eip2612Deposits,
|
|
32926
|
+
asset: assetMeta,
|
|
32927
|
+
priceUsd: priceUsd || void 0,
|
|
32928
|
+
totalAssetsFormatted,
|
|
32929
|
+
totalAssetsUsd: totalAssetsFormatted * priceUsd
|
|
32930
|
+
};
|
|
32931
|
+
out[underlying] = entry;
|
|
32932
|
+
}
|
|
32933
|
+
return out;
|
|
32934
|
+
}
|
|
32935
|
+
var fetchFluidFTokens = async (chainId, multicallRetry, prices = {}, tokenList = {}) => {
|
|
32936
|
+
const calls = buildFluidFTokensCall(chainId);
|
|
32937
|
+
if (calls.length === 0) return {};
|
|
32938
|
+
const raw = await multicallRetry({
|
|
32939
|
+
chain: chainId,
|
|
32940
|
+
calls,
|
|
32941
|
+
abi: calls.map(() => FluidLendingResolverAbi)
|
|
32942
|
+
});
|
|
32943
|
+
const [converter] = getFluidFTokensConverter(chainId, prices, tokenList);
|
|
32944
|
+
return converter(raw) ?? {};
|
|
32945
|
+
};
|
|
32946
|
+
|
|
32540
32947
|
// src/lending/margin/e-mode/index.ts
|
|
32541
32948
|
function computeEModeSwitchHealth(positions, lenderMeta, currentCollateral, currentAdjustedDebt, currentMode, targetMode) {
|
|
32542
32949
|
if (currentAdjustedDebt === 0) return null;
|
|
@@ -33023,6 +33430,6 @@ async function fetchTokenBalances(chainId, account, tokens, options = {}) {
|
|
|
33023
33430
|
return parseTokenBalanceResult(rawResult, prepared.query);
|
|
33024
33431
|
}
|
|
33025
33432
|
|
|
33026
|
-
export { EMPTY_BALANCE, MORPHO_LENS, MaxParamThresholds, applyPositionDelta, attachPricesToFlashLiquidity, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, computeBorrowDelta2 as computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta2 as computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta2 as computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeWithdrawDelta2 as computeWithdrawDelta, computeZapTradeDeltas, convertLenderUserDataResult, createMarketUid, createMulticallRpcCall, createRawRpcCalls, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, encodeBalanceFetcherCalldata, fetchEulerSubAccountIndexes, fetchFlashLiquidityForChain, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchOraclePrices, fetchPendlePrices, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getSubAccountAddress, getSubAccountIndex, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
|
|
33433
|
+
export { EMPTY_BALANCE, MORPHO_LENS, MaxParamThresholds, applyPositionDelta, attachPricesToFlashLiquidity, buildFluidFTokensCall, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, computeBorrowDelta2 as computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta2 as computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta2 as computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeWithdrawDelta2 as computeWithdrawDelta, computeZapTradeDeltas, convertLenderUserDataResult, createMarketUid, createMulticallRpcCall, createRawRpcCalls, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, encodeBalanceFetcherCalldata, fetchEulerSubAccountIndexes, fetchFlashLiquidityForChain, fetchFluidFTokens, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchOraclePrices, fetchPendlePrices, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getFluidFTokensConverter, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getSubAccountAddress, getSubAccountIndex, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
|
|
33027
33434
|
//# sourceMappingURL=index.js.map
|
|
33028
33435
|
//# sourceMappingURL=index.js.map
|