@1delta/margin-fetcher 0.0.411 → 0.0.412

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 CHANGED
@@ -3,7 +3,7 @@ import { Lender } from '@1delta/lender-registry';
3
3
  export { isAaveType, isAaveV2Type, isAaveV32Type, isAaveV3Type, isCompoundV3, isCompoundV3Type, isInit, isMorphoType, isMultiMarket, isYLDR } from '@1delta/lender-registry';
4
4
  import { DebitData, LenderDebitData, LstAcceptedInput } from '@1delta/calldata-sdk';
5
5
  import { RelayProxyConfig } from '@1delta/proxy-fetch';
6
- import { TermMarketConfig, LiquityBranchConfig, LiquityConfigChain, RiverMarketConfig, RiverConfigChain, RiverChainData, InverseMarketConfig, InverseConfigChain, InverseChainData, UsddMarketConfig, UsddConfigChain, UsddChainData, TellerPoolConfig, MorphoTypeVaultEntry } from '@1delta/data-sdk';
6
+ import { TermMarketConfig, LiquityBranchConfig, LiquityConfigChain, RiverMarketConfig, RiverConfigChain, RiverChainData, InverseMarketConfig, InverseConfigChain, InverseChainData, ResupplyConfigChain, LlamaLendMarketConfig, LlamaLendConfigChain, LlamaLendChainData, UsddMarketConfig, UsddConfigChain, UsddChainData, FrankencoinMarketConfig, FrankencoinConfigChain, FrankencoinChainData, TellerPoolConfig, MorphoTypeVaultEntry } from '@1delta/data-sdk';
7
7
  export { MorphoLensAbi } from '@1delta/abis';
8
8
 
9
9
  interface GenericCurrency {
@@ -2957,6 +2957,14 @@ interface InverseMarketRaw {
2957
2957
  borrowPaused: boolean | null;
2958
2958
  /** Borrows already taken today against `dailyLimit` — API only. */
2959
2959
  dailyBorrows: number | null;
2960
+ /**
2961
+ * `Market.replenishmentIncentiveBps` (1000 = 10%) — the replenisher
2962
+ * bot's cut of a force-replenish, per market. It is carved OUT of the
2963
+ * `replenishmentPriceBps` cost and paid in DOLA from the market's own
2964
+ * liquidity; the borrower's debt grows by the FULL cost either way, so
2965
+ * this is a protocol/bot split, not an extra borrower charge.
2966
+ */
2967
+ replenishmentIncentiveBps: number | null;
2960
2968
  }
2961
2969
  /** Raw public-data batch for the FiRM deployment (one chain). */
2962
2970
  interface InverseMarketsRaw {
@@ -3020,6 +3028,184 @@ declare function convertInverseMarketsToResponse(raw: InverseMarketsRaw, chainId
3020
3028
  [m: string]: MorphoGeneralPublicResponse;
3021
3029
  };
3022
3030
 
3031
+ /**
3032
+ * The immutable half of a Resupply pair. Cached across refreshes because none
3033
+ * of it can change: `collateral` and `underlying` are set in the pair's
3034
+ * constructor and there is no setter (`setConvexPool` only moves where the
3035
+ * SHARES are staked, never what the collateral token is).
3036
+ */
3037
+ interface ResupplyPairIdentity {
3038
+ pair: string;
3039
+ /** e.g. `Resupply Pair (CurveLend: crvUSD/sfrxUSD) - 1`. */
3040
+ name: string;
3041
+ /** The ERC-4626 share of the WRAPPED market — the accounting unit. */
3042
+ collateral: string;
3043
+ /** What the user actually deposits and withdraws: crvUSD or frxUSD. */
3044
+ underlying: string;
3045
+ collateralDecimals: number;
3046
+ underlyingDecimals: number;
3047
+ }
3048
+ /**
3049
+ * One Resupply pair after the state batch. Raw bigints; `null` = failed
3050
+ * allowFailure read.
3051
+ */
3052
+ interface ResupplyPairRaw {
3053
+ identity: ResupplyPairIdentity;
3054
+ /** 1e5-scaled (95000 = 95%). */
3055
+ maxLTV: bigint | null;
3056
+ /** Debt ceiling. ZERO ⇒ paused/retired — this is the liveness signal. */
3057
+ borrowLimit: bigint | null;
3058
+ /** 1e5-scaled penalty on top of the debt at liquidation. */
3059
+ liquidationFee: bigint | null;
3060
+ /** 1e5-scaled fee added to minted debt (0 on every live pair). */
3061
+ mintFee: bigint | null;
3062
+ /** Hard per-position floor (1,000 reUSD). */
3063
+ minimumBorrowAmount: bigint | null;
3064
+ /** Face reUSD debt, interest previewed. */
3065
+ totalBorrowAmount: bigint | null;
3066
+ totalBorrowShares: bigint | null;
3067
+ /** Collateral SHARES held by the pair. */
3068
+ totalCollateral: bigint | null;
3069
+ /** 1e18-scaled per SECOND, from `currentRateInfo` (last checkpoint). */
3070
+ ratePerSec: bigint | null;
3071
+ /** Same, but recomputed live by the Utilities lens — preferred. */
3072
+ liveRatePerSec: bigint | null;
3073
+ /** The WRAPPED market's supply rate per second, 1e18-scaled. */
3074
+ underlyingSupplyRatePerSec: bigint | null;
3075
+ /** `convertToAssets(1e18)` on the collateral vault — UNDERLYING per share.
3076
+ * ~1e15 for Curve Lend vaults, ~1e18 for Fraxlend pairs. */
3077
+ collateralPrice: bigint | null;
3078
+ /** Cached `1e36 / collateralPrice` from the pair (stale between writes). */
3079
+ exchangeRate: bigint | null;
3080
+ }
3081
+ interface ResupplyMarketsRaw {
3082
+ lender: string;
3083
+ config?: ResupplyConfigChain;
3084
+ pairs: ResupplyPairRaw[];
3085
+ }
3086
+
3087
+ /**
3088
+ * Fetch every Resupply market on a chain — FULLY ON-CHAIN, no API and no
3089
+ * published market roster.
3090
+ *
3091
+ * Discovery is `ResupplyRegistry.getAllPairAddresses()`. That is deliberate:
3092
+ * governance adds pairs (7 appeared between the docs' published list and
3093
+ * 2026-08) and retires them by zeroing `borrowLimit`, so a static file would
3094
+ * both miss new markets and advertise frozen ones as borrowable. The registry
3095
+ * is permissionless to read and is the same source the protocol's own
3096
+ * periphery uses.
3097
+ *
3098
+ * Three rounds cold, two warm:
3099
+ * 1. registry → pair addresses (intersected with `pairAllowlist` if set);
3100
+ * 2. identity (`name`/`collateral`/`underlying` + both tokens' decimals) for
3101
+ * pairs not already cached — immutable, so this is once per pair ever;
3102
+ * 3. state: terms, accounting, rates and the collateral vault's share price.
3103
+ *
3104
+ * The rate is read from the `Utilities` lens rather than `currentRateInfo`,
3105
+ * which is only a checkpoint from the last write — on a quiet pair that can be
3106
+ * hours stale, and the off-peg amplifier moves with the reUSD price. The
3107
+ * checkpoint is kept as a fallback.
3108
+ */
3109
+ declare function fetchResupplyMarkets(lender: string, chainId: string): Promise<ResupplyMarketsRaw>;
3110
+
3111
+ /**
3112
+ * The external lending market a Resupply pair wraps.
3113
+ *
3114
+ * Every Resupply pair's collateral IS another lender's supply position, so a
3115
+ * position here carries that market's risk on top of Resupply's own. This
3116
+ * resolves the link where we can: the collateral vault is matched against the
3117
+ * LlamaLend roster by ADDRESS (LlamaLend indexes markets by Controller, so the
3118
+ * lookup goes through `llamaLendMarketByVault`).
3119
+ *
3120
+ * Verified 2026-08-04: 16 of the 21 registered pairs match a LlamaLend market
3121
+ * exactly, and the generation agrees independently — Resupply's own
3122
+ * `CurveLend:` names map to LlamaLend `version: 1` and `CurveLendV2:` to
3123
+ * `version: 2`. The other 5 are Fraxlend pairs, which we do not integrate as a
3124
+ * lender, so they resolve to `provider: 'fraxlend'` with no market key.
3125
+ */
3126
+ interface ResupplyWrappedMarket {
3127
+ /** Which protocol the collateral position lives in. */
3128
+ provider: 'llamalend' | 'fraxlend' | 'unknown';
3129
+ /** The ERC-4626 the pair custodies — always known (it IS the collateral). */
3130
+ vault: string;
3131
+ /** `LLAMALEND_<CONTROLLER_ADDR>` when we integrate that market, else absent.
3132
+ * This is the key to look the wrapped market up in our own data. */
3133
+ lender?: string;
3134
+ /** LlamaLend Controller (the borrow surface of the wrapped market). */
3135
+ controller?: string;
3136
+ /** LlamaLend LLAMMA. Carried because a leverage route through Resupply must
3137
+ * never touch it — the wrapped Controller asserts its band state. */
3138
+ amm?: string;
3139
+ /** 1 = `oneway`, 2 = `oneway-v2`. Matches Resupply's CurveLend/CurveLendV2. */
3140
+ version?: 1 | 2;
3141
+ /** What the wrapped market lends against, e.g. `sfrxUSD`. */
3142
+ collateralSymbol?: string;
3143
+ }
3144
+ /**
3145
+ * Synthesized per-pair lender key, e.g. `RESUPPLY_1_C5184CCC…`. The chain id
3146
+ * rides in the key (Fluid/River/Frankencoin convention) even though Resupply
3147
+ * is Ethereum-only today.
3148
+ */
3149
+ declare function resupplyLenderKey(lender: string, chainId: string | number, pair: string): string;
3150
+ /** Recover `{ lender, chainId, pair }` from a per-pair key. */
3151
+ declare function resupplyKeyParts(key: string): {
3152
+ lender: string;
3153
+ chainId: string;
3154
+ pair: string;
3155
+ } | undefined;
3156
+ /**
3157
+ * Map one Resupply deployment's on-chain batch into the shared
3158
+ * `MorphoGeneralPublicResponse` shape, keyed `RESUPPLY_<chainId>_<PAIR>`.
3159
+ *
3160
+ * Four modelling decisions worth knowing (all from RESUPPLY_PLAN.md):
3161
+ *
3162
+ * - **The collateral we publish is the UNDERLYING (crvUSD / frxUSD), not the
3163
+ * ERC-4626 share.** The share is an internal accounting unit that no token
3164
+ * list carries and no price feed covers, and both user-facing entry points
3165
+ * (`addCollateral` / `removeCollateral`) are denominated in the underlying.
3166
+ * Share amounts are converted with the vault's own
3167
+ * `convertToAssets(1e18)` — the exact number Resupply's oracle uses. NB
3168
+ * that price is ~**1e15** for Curve Lend vaults, so the share count is
3169
+ * ~1000x the underlying; a bare 1e18 divide is wrong by three orders of
3170
+ * magnitude.
3171
+ * - **The collateral carries the wrapped market's yield.** A Resupply deposit
3172
+ * is a Curve Lend / Fraxlend supply position, so `getUnderlyingSupplyRate`
3173
+ * is published as the collateral row's `intrinsicYield`. Without it the
3174
+ * position looks like it pays nothing, when in fact the whole product is
3175
+ * the spread between that and the ~half-of-it borrow rate.
3176
+ * - **`borrowLimit == 0` means PAUSED.** `pause()` zeroes it and there is no
3177
+ * `isPaused`; 9 of 21 pairs sat at zero at integration. Such a pair is
3178
+ * reported frozen and non-borrowable, but deposits/withdrawals stay open so
3179
+ * users can exit.
3180
+ * - **There is no supply side** — reUSD is minted — so `totalDeposits` on the
3181
+ * loan row is 0 and `depositRate` is 0. The earn leg is sreUSD, which
3182
+ * belongs to the savings provider.
3183
+ */
3184
+ declare function convertResupplyMarketsToResponse(raw: ResupplyMarketsRaw, chainId: string, prices?: {
3185
+ [asset: string]: number;
3186
+ }, _additionalYields?: AdditionalYields, tokens?: GenericTokenList): {
3187
+ [m: string]: MorphoGeneralPublicResponse;
3188
+ };
3189
+
3190
+ /** Per-position Resupply detail attached to the debt row (raw strings). */
3191
+ interface ResupplyPositionInfo {
3192
+ /** Internal borrow shares. NOT an amount — see `debt` for reUSD units. */
3193
+ borrowShares: string;
3194
+ /** Collateral in VAULT SHARES (the pair's own accounting unit). */
3195
+ collateralShares: string;
3196
+ /** `convertToAssets(1e18)` on the collateral vault at read time — the
3197
+ * factor that turned those shares into the reported underlying. ~1e15 for
3198
+ * Curve Lend vaults. */
3199
+ collateralSharePrice: string;
3200
+ /** The pair contract — the market id and every write target. */
3201
+ pair: string;
3202
+ /** The collateral vault (Curve Lend / Fraxlend 4626 share token). */
3203
+ collateralVault: string;
3204
+ }
3205
+
3206
+ /** Test seam — drops the roster + discovery caches. */
3207
+ declare function __resetResupplyUserCaches(): void;
3208
+
3023
3209
  /** Off-chain `Market.predictEscrow(user)`. */
3024
3210
  declare function predictInverseEscrow(market: Address, escrowImplementation: Address, user: Address): Address;
3025
3211
 
@@ -3036,6 +3222,184 @@ interface InversePositionInfo {
3036
3222
  dbrDeficit: string;
3037
3223
  /** DBR signed balance (raw, may be negative). */
3038
3224
  dbrSignedBalance: string;
3225
+ /** `DBR.debts(user)` (raw DOLA) — debt across ALL FiRM markets, which is
3226
+ * what burns DBR at 1 per DOLA-year. Chain-wide, repeated on every row. */
3227
+ dbrTotalDebt: string;
3228
+ /** Seconds until `dbrBalance` is exhausted at that burn ('0' if no debt). */
3229
+ dbrRunwaySeconds: string;
3230
+ /** Unix seconds of the projected depletion — past that point anyone can
3231
+ * force-replenish the account, charging the replenished DBR to its DOLA
3232
+ * debt at `replenishmentPriceBps`, and withdrawals freeze. Absent when
3233
+ * there is no debt. */
3234
+ dbrDepletionTimestamp?: string;
3235
+ }
3236
+
3237
+ /**
3238
+ * Per-market snapshot of a LlamaLend market. Amounts are HUMAN units (the
3239
+ * Curve API serves human numbers; the on-chain fallback normalizes to match).
3240
+ * Rates are DECIMALS (0.0391 = 3.91% APR), nominal — never the compounded
3241
+ * `borrowApy` the API also carries.
3242
+ *
3243
+ * `null` marks a value the active source could not provide; the converter
3244
+ * degrades per field rather than dropping the market.
3245
+ */
3246
+ interface LlamaLendMarketRaw {
3247
+ market: LlamaLendMarketConfig;
3248
+ /** Controller.total_debt — borrowed-token units (human). */
3249
+ totalDebt: number | null;
3250
+ /** Vault.totalAssets — borrowed-token units (human). */
3251
+ totalSupplied: number | null;
3252
+ /**
3253
+ * Borrowable right now. v2: `Controller.available_balance()`. v1:
3254
+ * `borrowedToken.balanceOf(controller)`. This is also the withdrawal
3255
+ * ceiling for lenders — the vault cannot pay out what is lent.
3256
+ */
3257
+ availableToBorrow: number | null;
3258
+ /** Nominal borrow APR as a decimal. */
3259
+ borrowApr: number | null;
3260
+ /** Nominal lend APR as a decimal. */
3261
+ lendApr: number | null;
3262
+ /** Collateral price in borrowed-token terms, from the AMM's EMA oracle. */
3263
+ collateralPrice: number | null;
3264
+ /** USD price of the collateral, API only (the chain read has no USD leg). */
3265
+ collateralPriceUsd: number | null;
3266
+ /** USD price of the borrowed token, API only. */
3267
+ borrowedPriceUsd: number | null;
3268
+ /**
3269
+ * Effective collateral factor at the market's `defaultBands`, derived from
3270
+ * `max_borrowable(1 unit, N)` divided by the oracle price.
3271
+ *
3272
+ * There is NO market-constant LTV in LlamaLend — the number moves with the
3273
+ * band count. Measured on sreUSD/crvUSD: 0.991 at N=4 down to 0.886 at
3274
+ * N=50. Reporting the N=4 maximum would flatter every risk comparison
3275
+ * against Aave/Morpho, so the default N is what gets reported and the rest
3276
+ * of the curve travels alongside in `bandLtv`.
3277
+ */
3278
+ collateralFactor: number | null;
3279
+ /** `{ [N]: collateralFactor }` — the trade-off curve for the UI and sizer. */
3280
+ bandLtv: {
3281
+ [bands: string]: number;
3282
+ } | null;
3283
+ /**
3284
+ * v2 borrow cap in borrowed-token units (human). `0` DISABLES borrowing —
3285
+ * a fresh v2 market looks live but is not. `null` on v1 (uncapped).
3286
+ */
3287
+ borrowCap: number | null;
3288
+ /** Whether new borrows are possible at all right now. */
3289
+ borrowingEnabled: boolean;
3290
+ /** Vault.maxDeposit — `0` disables deposits (v2 `max_supply`). */
3291
+ maxDeposit: number | null;
3292
+ /** Number of open loans, for the liquidations surface. */
3293
+ nLoans: number | null;
3294
+ /**
3295
+ * Soft-liquidation state of the market as a whole: the AMM's active band.
3296
+ * Not a per-user value, but it tells the UI whether the market is currently
3297
+ * converting anyone's collateral.
3298
+ */
3299
+ activeBand: number | null;
3300
+ }
3301
+ /** Raw public-data batch for one LlamaLend chain (both generations together). */
3302
+ interface LlamaLendMarketsRaw {
3303
+ /** The bare lender key, `LLAMALEND`. */
3304
+ lender: string;
3305
+ config: LlamaLendConfigChain | undefined;
3306
+ chainData: LlamaLendChainData | undefined;
3307
+ markets: LlamaLendMarketRaw[];
3308
+ /** Which source filled the market rows. */
3309
+ source: 'api' | 'chain' | 'none';
3310
+ }
3311
+
3312
+ declare function fetchLlamaLendMarkets(lender: string, chainId: string): Promise<LlamaLendMarketsRaw>;
3313
+
3314
+ /**
3315
+ * Synthesized per-market lender key, e.g.
3316
+ * `LLAMALEND_4F79FE450A2BAF833E8F50340BD230F5A3ECAFE9` (= the sreUSD/crvUSD
3317
+ * market). Keyed by the CONTROLLER, which is what every write and every user
3318
+ * read targets — the vault is a lookup off it. Address-suffixed
3319
+ * (Teller/Exactly/Inverse convention); the chain id is not part of the key
3320
+ * because chain scoping happens at the marketUid level.
3321
+ *
3322
+ * Both generations share this key space on purpose: to a user they are one
3323
+ * protocol, and the Curve API returns them in one list. The `version` field on
3324
+ * the market row is what encoders branch on.
3325
+ */
3326
+ declare function llamaLendLenderKey(lender: string, controller: string): string;
3327
+ /** Recover `{ lender, controller }` from a per-market key (or undefined). */
3328
+ declare function llamaLendKeyParts(key: string): {
3329
+ lender: string;
3330
+ controller: string;
3331
+ } | undefined;
3332
+ /**
3333
+ * Map the LlamaLend batch into the shared `MorphoGeneralPublicResponse` shape,
3334
+ * keyed by `LLAMALEND_<CONTROLLER_ADDR>` — one key per market.
3335
+ *
3336
+ * Per market, two entries in the isolated-pair layout:
3337
+ *
3338
+ * - COLLATERAL entry — deposit-only. `collateralFactor` is the LTV AT THE
3339
+ * MARKET'S DEFAULT BAND COUNT, because LlamaLend has no market-constant
3340
+ * LTV: it is a function of `N` and moves 0.886..0.991 on a single market.
3341
+ * The whole curve rides along in `params.market.llamalend.bandLtv` so the
3342
+ * UI can show the trade-off and the leverage sizer can use the real number
3343
+ * for the `N` the user actually picks.
3344
+ * - LOAN entry — the borrowed token. Supply side is the ERC-4626 vault, so
3345
+ * unlike Inverse this one HAS `totalDeposits`.
3346
+ *
3347
+ * SOFT LIQUIDATION is the thing this shape cannot express natively, so it is
3348
+ * carried explicitly in the descriptor. `liquidationPenalty` here is the HARD
3349
+ * liquidation bonus only — it applies below the entire band range. Inside the
3350
+ * range a position is converted gradually through the market's own AMM with no
3351
+ * penalty at all, and a consumer that renders `liquidationPenalty` as "what
3352
+ * you lose when the price hits X" is describing the wrong event.
3353
+ */
3354
+ declare function convertLlamaLendMarketsToResponse(raw: LlamaLendMarketsRaw, chainId: string, prices?: {
3355
+ [asset: string]: number;
3356
+ }, additionalYields?: AdditionalYields, tokens?: GenericTokenList): {
3357
+ [m: string]: MorphoGeneralPublicResponse;
3358
+ };
3359
+
3360
+ /**
3361
+ * Per-position LlamaLend detail attached to the debt row (raw strings unless
3362
+ * noted).
3363
+ *
3364
+ * The two fields a consumer must not ignore:
3365
+ *
3366
+ * - `softLiquidating` / `priceUpper` / `priceLower` — a LlamaLend position
3367
+ * does not have a liquidation price. It has a band RANGE, and it starts
3368
+ * converting collateral into the borrowed token as soon as the oracle
3369
+ * enters that range. Rendering a single number here misrepresents the
3370
+ * protocol.
3371
+ * - `bandCollateralInBorrowed` — the borrowed-token leg the LLAMMA has
3372
+ * already produced from the user's collateral. It sits inside the position,
3373
+ * offsets debt, and is NOT a wallet balance.
3374
+ */
3375
+ interface LlamaLendPositionInfo {
3376
+ /** Signed health, WAD. `< 0` ⇒ hard-liquidatable. */
3377
+ health: string;
3378
+ /** Upper bound of the soft-liquidation band range, WAD. */
3379
+ priceUpper: string;
3380
+ /** Lower bound of the soft-liquidation band range, WAD. */
3381
+ priceLower: string;
3382
+ /** Band indices `[n1, n2]` the collateral currently occupies. */
3383
+ bands: [number, number] | undefined;
3384
+ /** Band count `N` chosen at loan creation — IMMUTABLE for the loan's life. */
3385
+ bandCount: number;
3386
+ /**
3387
+ * Borrowed-token amount held inside the user's bands (raw). Non-zero means
3388
+ * the position IS or HAS BEEN in soft liquidation.
3389
+ */
3390
+ bandCollateralInBorrowed: string;
3391
+ /** True when the LLAMMA currently holds a borrowed-token leg for this user. */
3392
+ softLiquidating: boolean;
3393
+ /**
3394
+ * Whether the probed spender holds the Controller's boolean grant for this
3395
+ * market. FAILS CLOSED — older-blueprint controllers have no `approval`
3396
+ * method, the call fails, and this reads `false`, which is correct.
3397
+ */
3398
+ delegated: boolean;
3399
+ /** Whether the market's Controller supports delegation at all. */
3400
+ supportsDelegation: boolean;
3401
+ /** Market generation — the leverage/encoder ABIs differ. */
3402
+ version: 1 | 2;
3039
3403
  }
3040
3404
 
3041
3405
  /**
@@ -3140,6 +3504,115 @@ interface UsddPositionInfo {
3140
3504
  ilk: string;
3141
3505
  }
3142
3506
 
3507
+ /**
3508
+ * One Frankencoin market (= one ORIGINAL position) after the on-chain batch.
3509
+ * Raw bigints; `null` = failed allowFailure read.
3510
+ */
3511
+ interface FrankencoinMarketRaw {
3512
+ market: FrankencoinMarketConfig;
3513
+ /** Owner-declared liquidation price, 36-dec scaled vs collateral decimals. */
3514
+ price: bigint | null;
3515
+ /** FACE debt on the original itself (clones carry their own). */
3516
+ minted: bigint | null;
3517
+ /** ZCHF the original + its clones may still draw — market borrow capacity. */
3518
+ availableForClones: bigint | null;
3519
+ /** Collateral custodied by the ORIGINAL position contract. */
3520
+ collateralBalance: bigint | null;
3521
+ /** Hub lead rate + risk premium, ppm. */
3522
+ annualInterestPPM: bigint | null;
3523
+ /** Upfront fee for minting now (pro-rata to expiry), ppm. */
3524
+ currentFeePPM: bigint | null;
3525
+ /** Withheld into the equity reserve at mint, ppm. */
3526
+ reserveContribution: bigint | null;
3527
+ /** Non-zero while a Dutch-auction challenge is running. */
3528
+ challengedAmount: bigint | null;
3529
+ expiration: bigint | null;
3530
+ isClosed: boolean | null;
3531
+ }
3532
+ interface FrankencoinMarketsRaw {
3533
+ lender: string;
3534
+ config?: FrankencoinConfigChain;
3535
+ chainData?: FrankencoinChainData;
3536
+ markets: FrankencoinMarketRaw[];
3537
+ }
3538
+
3539
+ /**
3540
+ * Fetch all market data of ONE Frankencoin deployment — FULLY ON-CHAIN via
3541
+ * one retrying multicall over the curated ORIGINAL-position roster from
3542
+ * lender-metadata (`frankencoinConfig` / `frankencoinMarkets`, generated by
3543
+ * its `update:frankencoin` job, which filters to V2 + open + a priceable
3544
+ * collateral allowlist).
3545
+ *
3546
+ * Only originals are read here: they carry the terms AND the market-level
3547
+ * borrow capacity (`availableForClones`). Clones are USER positions and are
3548
+ * resolved per-account in the user-data path.
3549
+ *
3550
+ * NB `price` is the owner-DECLARED liquidation price, not an oracle quote —
3551
+ * see the converter for how that is surfaced.
3552
+ */
3553
+ declare function fetchFrankencoinMarkets(lender: string, chainId: string): Promise<FrankencoinMarketsRaw>;
3554
+
3555
+ /**
3556
+ * Synthesized per-market lender key, e.g.
3557
+ * `FRANKENCOIN_1_5F2C10F7…` — one per ORIGINAL position. The chain id is part
3558
+ * of the key (Fluid/River convention) even though Frankencoin is
3559
+ * Ethereum-only today, so an L2 hub would not collide.
3560
+ */
3561
+ declare function frankencoinLenderKey(lender: string, chainId: string | number, position: string): string;
3562
+ /** Recover `{ lender, chainId, position }` from a per-market key. */
3563
+ declare function frankencoinKeyParts(key: string): {
3564
+ lender: string;
3565
+ chainId: string;
3566
+ position: string;
3567
+ } | undefined;
3568
+ /**
3569
+ * Map one Frankencoin deployment's on-chain batch into the shared
3570
+ * `MorphoGeneralPublicResponse` shape, keyed `FRANKENCOIN_<chainId>_<ORIGINAL>`.
3571
+ *
3572
+ * Three modelling decisions worth knowing (all from FRANKENCOIN_PLAN.md):
3573
+ *
3574
+ * - **The liquidation price is owner-DECLARED, not an oracle.** `price` is
3575
+ * 36-dec scaled against the collateral's decimals and is policed by a
3576
+ * Dutch-auction challenge game. We surface it as the LIQUIDATION price
3577
+ * (it defines `collateralFactor = 1`, i.e. minting is allowed up to
3578
+ * `coll × price`) but value collateral with OUR price feeds. The
3579
+ * divergence between the two is the risk signal, and it is carried
3580
+ * verbatim in `params.market.frankencoin.declaredPrice` so a consumer can
3581
+ * compute it. Never present the resulting health as a protocol invariant.
3582
+ * - **Debt ≠ proceeds.** `minted` is FACE debt including the withheld
3583
+ * `reserveContribution` (10–40 %) plus the upfront pro-rata fee. Both
3584
+ * ppm figures ride along in the descriptor so a quote layer can convert.
3585
+ * - **Positions expire.** `expiration` is surfaced and an expired market is
3586
+ * reported halted (its collateral is subject to forced sale).
3587
+ *
3588
+ * Per market: a COLLATERAL entry (the original's own collateral) and a LOAN
3589
+ * entry (ZCHF). There is no protocol supply side — ZCHF is minted, and the
3590
+ * earn leg is the separate savings module carried by the savings provider —
3591
+ * so `totalDeposits` on the loan row is 0.
3592
+ */
3593
+ declare function convertFrankencoinMarketsToResponse(raw: FrankencoinMarketsRaw, chainId: string, prices?: {
3594
+ [asset: string]: number;
3595
+ }, _additionalYields?: AdditionalYields, tokens?: GenericTokenList): {
3596
+ [m: string]: MorphoGeneralPublicResponse;
3597
+ };
3598
+
3599
+ /** Per-position detail attached to the debt row (raw strings). */
3600
+ interface FrankencoinPositionInfo {
3601
+ /** The position contract — the sub-account id and every write op's target. */
3602
+ position: string;
3603
+ /** The ORIGINAL this position was cloned from (its market). */
3604
+ original: string;
3605
+ /** Owner-declared liquidation price (raw, 36-dec scaled). */
3606
+ declaredPrice: string;
3607
+ /** Unix seconds; a position past this is subject to forced sale. */
3608
+ expiration: string;
3609
+ /** Non-zero while a Dutch-auction challenge is running against it. */
3610
+ challengedAmount: string;
3611
+ /** ppm withheld into the equity reserve — needed to quote a close, since
3612
+ * repaying burns with reserve credit and costs LESS than `minted`. */
3613
+ reserveContributionPPM: string;
3614
+ }
3615
+
3143
3616
  /**
3144
3617
  * Raw on-chain read for ONE Teller `LenderCommitmentGroup` pool. All amounts are
3145
3618
  * raw token base units; `minRateBps` is the pool's min borrow APR in BASIS
@@ -7712,4 +8185,4 @@ interface FetchTokenBalancesOptions {
7712
8185
  */
7713
8186
  declare function fetchTokenBalances(chainId: string, account: string, tokens: string[], options?: FetchTokenBalancesOptions): Promise<TokenBalanceResult>;
7714
8187
 
7715
- export { type AaveMetadata, type AaveV2Public, type AaveV2UserReserveResponse, type AaveV3Public, type AaveV3UserReserveResponse, type AdditionalYields, ApiBookSource, type AprData, type BalanceData, type BaseLendingPosition, type BasicReserveResponse, type ChainDiagnostic, type ChainLinkResponse, type ChainQuery, type ChainSummary, type CompoundV2Metadata, type CompoundV3Public, type CompoundV3UserReserveResponse, type ConfigEntry, type CoreValidators, DEFAULT_MIDNIGHT_API, DEFAULT_OUTLIER_GUARD, DEFAULT_STALE_REJECT_SECONDS, DEFAULT_TERMMAX_API, type Denomination, type DepthMap, EMPTY_BALANCE, type EModeAssets, type EModeData, type EModeResult, EXACTLY_LENDER_KEY, type EulerEarnVault, type EulerEarnVaults, type EulerV2Metadata, type ExactlyFixedPool, type ExactlyFixedPosition, type ExactlyMarketAccount, type ExactlyMarketsRaw, type ExactlyUserFixedPosition, type ExtraValidationCall, type FeedObservation, type FeedStat, type FeedStatsMap, type FeedTimestampMap, type FetchListaVaultsFromChainOptions, type FetchMorphoVaultsFromChainOptions, type FetchOraclePricesOptions, type FetchTokenBalancesOptions, type FlattenPriorityConfig, type FluidFToken, type FluidFTokens, type FullLenderRewardsMap, GMX_API_HOSTS, GMX_READ_CONTRACTS, GMX_SUPPORTED_CHAINS, type GenericCurrency, type GenericTokenList, type GetVaultPublicDataAllOptions, type GmxExecutionFees, type GmxPendingDeposit, type GmxPendingWithdrawal, type GmxReadContracts, type GmxUserBalance, type GmxUserPositions, type GmxUserPositionsOptions, type GmxVault, type GmxVaultKind, type GmxVaults, type GmxVaultsFetchOptions, type GroupAccumulator, HYPERCORE_VAULT_REGISTRY, type HypercoreLockStatus, type HypercoreUserPositionsOptions, type HypercoreVault, type HypercoreVaultPosition, type HypercoreVaultRegistryEntry, type HypercoreVaults, type HypercoreVaultsFetchOptions, IDLE_MARKET_ID, INTERFACE_IDS, type InitMetadata, type InitPublic, type InitUserReserveResponse, type InterfaceKind, type InverseMarketRaw, type InverseMarketsRaw, type InversePositionInfo, LAGOON_API_URL, LAGOON_CHAIN_IDS, type LagoonApiVault, type LagoonSyncMode, type LagoonVault, type LagoonVaults, type LenderConfigData, type LenderConfigMap, type LenderCrossPoolMeta, type LenderData, type LenderDataEntry, type LenderInfo, type LenderInfoMap, type LenderPublicBase, type LenderRewardsMap, type LenderSummary, type LenderToLenderCrossPoolMeta, type LenderTotalAmounts, type LenderUserQuery, type LenderUserResponse, type LenderYieldComplete, type LenderYields$1 as LenderYields, LendingMode, type LiquityBranchRaw, type LiquityDiscoveredTrove, type LiquityDiscovery, type LiquityMarketsRaw, type LiquitySpInfo, type LiquityTroveInfo, type ListaMarketOverrides, type LoopPostTradeMetrics, type LstDelegation, type LstDelegationKind, type LstValidator, type LstWithdrawalFetchOptions, type LstWithdrawalRegistryEntry, type LstWithdrawalRequest, type LstWithdrawalRequestsByLst, type LstWithdrawalStatus, MORPHO_LENS, MaxParamThresholds, type MergedUserData, type MidnightBook, type MidnightBookLevel, type MidnightBookSource, type ModeBase, type MorphoMarketOverrides, type MorphoSubgraphProxyConfig, type MorphoUserMarketBalance, type MorphoUserReserveResponse, type MorphoVault, type MorphoVaults, type MulticallRpcBatch, type NumberMap, type OracleDiagnostics, type OraclePriceEntry, type OraclePricesResult, type OutlierGuardConfig, type ParsedBalanceData, type ParsedResponse, type ParsedUserBalance, type PermissionParams, type PoolData, type PoolWithMeta, type PortfolioSummary, type PortfolioTotals, type PostTradeMetrics, type PreparedCall, type PreparedMergedMulticallParams, type PreparedMergedRpcCalls, type PreparedTokenBalanceRpcCalls, type PreparedUserDataRpcCalls, type PriceDerivation, type PriceSelection, type ProtocolParams, type ProviderOptions, type RawRpcBatch, type RawRpcCall, type RawRpcResponse, type RiverMarketRaw, type RiverMarketsRaw, type RiverPositionInfo, STABLECOIN_SYMBOLS, STCELO_MANAGER_ADDRESS, type SelectPricesOptions, type SiloVault, type SiloVaults, type StCeloValidatorGroup, type StaleFeedEntry, type StructuredOraclePrices, type SubAccountSummary, type SumerPositionInput, type SummaryAprData, type SummaryBalanceData, TELLER_CALLS_PER_BID, TERMMAX_CALLS_PER_ACCOUNT, DECIMAL_BASE as TERMMAX_DECIMAL_BASE, TERMMAX_LIQUIDATION_PENALTY, TERMMAX_LIQUIDATION_WINDOW_SECS, TERMMAX_LIQUIDATOR_BONUS, TERMMAX_PARTIAL_CLOSE_FACTOR, TERMMAX_PARTIAL_LIQUIDATION_THRESHOLD_USD, type TellerDiscoveredBid, type TellerDiscovery, type TellerMarketsRaw, type TellerPoolRaw, type TermAuctionOrder, type TermAuctionOrders, type TermBookSource, type TermBookTop, type TermListing, type TermMarketRaw, TermMaxApiSource, type TermMaxBookTop, type TermMaxCurveSegment, type TermMaxDataSource, type TermMaxDiscovery, type TermMaxFeeConfig, type TermMaxMarketConfig, type TermMaxMarketRaw, type TermMaxOrderState, TermSubgraphSource, type TokenApprovalMeta, type TokenApprovalParams, type TokenBalanceEntry, type TokenBalanceQuery, type TokenBalanceResult, type TokenEntry, type TokenList, type TokenListInput, type TrackerDiagnostic, UPSHIFT_CHAIN_IDS, UPSHIFT_VAULTS_URL, type USDPriceMap, type UpshiftApiAsset, type UpshiftApiVault, type UpshiftVault, type UpshiftVaults, type UsddMarketRaw, type UsddMarketsRaw, type UsddPositionInfo, type UserApr, type UserConfig, type UserData, type UserDataResult, type UserLendingPosition, VAULT_SHARE_PRICE_PROBE, VOLATILE_VAULT_OVERRIDES, type VaultAprResult, type VaultClassification, type VaultClassificationFields, type VaultLookupEntry, type VaultMarketExposure, type VaultProvider, type VaultPublicDataAll, type VaultPublicDataResult, type VaultYieldSeries, type VaultYieldSnapshot, type YDaemonVault, YEARN_CHAIN_IDS, YEARN_YDAEMON_BASE, type YearnVault, type YearnVaultKind, type YearnVaults, type YieldProfile, accountDepositListKey, accountWithdrawalListKey, appendSnapshot, applyPositionDelta, attachPricesToFlashLiquidity, buildFluidFTokensCall, buildLiquityUserCall, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, buildTellerUserCall, buildTermMaxUserCall, buildVaultLookup, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, classifyFreshness, classifyReliability, classifyVault, collectFeedObservations, computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeVaultApr, computeWithdrawDelta, computeZapTradeDeltas, consensusReference, convertExactlyMarketsToResponse, convertInverseMarketsToResponse, convertLenderUserDataResult, convertLiquityMarketsToResponse, convertRiverMarketsToResponse, convertTellerMarketsToResponse, convertTermMarketsToResponse, convertTermMaxMarketsToResponse, convertUsddMarketsToResponse, createMarketUid, createMidnightBookSource, createMulticallRpcCall, createRawRpcCalls, createTermBookSource, createTermMaxDataSource, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, detectInterfaceKinds, encodeBalanceFetcherCalldata, exactlyPairLtv, exactlyPenaltyRateToAprPercent, exactlyWadRateToPercent, feedKeyOf, feedStatKey, fetchDolomiteAccountNumbers, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, fetchEulerSubAccountIndexes, fetchExactlyMarkets, fetchFlashLiquidityForChain, fetchFluidFTokens, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchGmxExecutionFees, fetchGmxTickerPrices, fetchGmxVaults, fetchHypercoreVaults, fetchInverseMarkets, fetchLagoonApiVaults, fetchLagoonVaults, fetchLiquityMarkets, fetchListaVaultsFromChain, fetchMorphoUserBalances, fetchMorphoUserPositionMarkets, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromChain, fetchOraclePrices, fetchPendlePrices, fetchRiverMarkets, fetchSiloVaults, fetchTellerMarkets, fetchTermMarkets, fetchTermMaxMarkets, fetchTokenBalances, fetchTokenMetadata, fetchUpshiftApiVaults, fetchUpshiftVaults, fetchUsddMarkets, fetchYearnApiVaults, fetchYearnVaults, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getCachedLiquityTroves, getCachedTellerBids, getCachedTermMaxDiscovery, getCachedTermMaxMarket, getCachedTermMaxMarkets, getCoreValidators, getFluidFTokensConverter, getGmxApiHost, getGmxReadContracts, getGmxUserPositions, getHealthFactor, getHypercoreUserPositions, getHypercoreVaultRegistry, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getLstDelegation, getLstValidators, getLstWithdrawalRegistry, getLstWithdrawalRequests, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getResolvedDolomiteAccountNumbers, getStCeloValidatorGroups, getSubAccountAddress, getSubAccountIndex, getVaultPublicDataAll, getVaultWithdrawalRequests, hasEulerEarnVaultSubgraph, hasLagoonVaults, hasMorphoPositionIndex, hasMorphoUserApi, hasMorphoUserSubgraph, hasUpshiftVaults, hasYearnVaults, inverseKeyParts, inverseLenderKey, isStablecoinSymbol, isYearnV3, keysFromMaps, lenderApiOnly, lenderFamily, liquityCandidateTroveIds, liquityKeyParts, liquityLenderKey, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTermMaxLtv, parseTokenBalanceResult, positivePart, predictInverseEscrow, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, priceGlvVaults, priceGmMarkets, probeAaveFeedTimestamps, pruneFeedStats, readVaultSharePrices, rejectOutliers as rejectPriceOutliers, resolveDerivation, resolveStCeloDepositGroup, riverKeyParts, riverLenderKey, selectAssetGroupPrices, stampVaultClassification, tellerBpsToPercent, tellerImpliedLtv, tellerLenderKey, tellerPoolFromLenderKey, termLenderKey, termMaxApiBase, borrowNif as termMaxBorrowNif, curveApr as termMaxCurveApr, curveAprNumber as termMaxCurveAprNumber, daysToMaturity as termMaxDaysToMaturity, lendNif as termMaxLendNif, mintGtFeeRatio as termMaxMintGtFeeRatio, ratioToNumber as termMaxRatioToNumber, ratioToPercent as termMaxRatioToPercent, tickToAprNumber, tickToPrice, unflattenLenderData, updateFeedStats, usddIlkBytes32, usddKeyParts, usddLenderKey };
8188
+ export { type AaveMetadata, type AaveV2Public, type AaveV2UserReserveResponse, type AaveV3Public, type AaveV3UserReserveResponse, type AdditionalYields, ApiBookSource, type AprData, type BalanceData, type BaseLendingPosition, type BasicReserveResponse, type ChainDiagnostic, type ChainLinkResponse, type ChainQuery, type ChainSummary, type CompoundV2Metadata, type CompoundV3Public, type CompoundV3UserReserveResponse, type ConfigEntry, type CoreValidators, DEFAULT_MIDNIGHT_API, DEFAULT_OUTLIER_GUARD, DEFAULT_STALE_REJECT_SECONDS, DEFAULT_TERMMAX_API, type Denomination, type DepthMap, EMPTY_BALANCE, type EModeAssets, type EModeData, type EModeResult, EXACTLY_LENDER_KEY, type EulerEarnVault, type EulerEarnVaults, type EulerV2Metadata, type ExactlyFixedPool, type ExactlyFixedPosition, type ExactlyMarketAccount, type ExactlyMarketsRaw, type ExactlyUserFixedPosition, type ExtraValidationCall, type FeedObservation, type FeedStat, type FeedStatsMap, type FeedTimestampMap, type FetchListaVaultsFromChainOptions, type FetchMorphoVaultsFromChainOptions, type FetchOraclePricesOptions, type FetchTokenBalancesOptions, type FlattenPriorityConfig, type FluidFToken, type FluidFTokens, type FrankencoinMarketRaw, type FrankencoinMarketsRaw, type FrankencoinPositionInfo, type FullLenderRewardsMap, GMX_API_HOSTS, GMX_READ_CONTRACTS, GMX_SUPPORTED_CHAINS, type GenericCurrency, type GenericTokenList, type GetVaultPublicDataAllOptions, type GmxExecutionFees, type GmxPendingDeposit, type GmxPendingWithdrawal, type GmxReadContracts, type GmxUserBalance, type GmxUserPositions, type GmxUserPositionsOptions, type GmxVault, type GmxVaultKind, type GmxVaults, type GmxVaultsFetchOptions, type GroupAccumulator, HYPERCORE_VAULT_REGISTRY, type HypercoreLockStatus, type HypercoreUserPositionsOptions, type HypercoreVault, type HypercoreVaultPosition, type HypercoreVaultRegistryEntry, type HypercoreVaults, type HypercoreVaultsFetchOptions, IDLE_MARKET_ID, INTERFACE_IDS, type InitMetadata, type InitPublic, type InitUserReserveResponse, type InterfaceKind, type InverseMarketRaw, type InverseMarketsRaw, type InversePositionInfo, LAGOON_API_URL, LAGOON_CHAIN_IDS, type LagoonApiVault, type LagoonSyncMode, type LagoonVault, type LagoonVaults, type LenderConfigData, type LenderConfigMap, type LenderCrossPoolMeta, type LenderData, type LenderDataEntry, type LenderInfo, type LenderInfoMap, type LenderPublicBase, type LenderRewardsMap, type LenderSummary, type LenderToLenderCrossPoolMeta, type LenderTotalAmounts, type LenderUserQuery, type LenderUserResponse, type LenderYieldComplete, type LenderYields$1 as LenderYields, LendingMode, type LiquityBranchRaw, type LiquityDiscoveredTrove, type LiquityDiscovery, type LiquityMarketsRaw, type LiquitySpInfo, type LiquityTroveInfo, type ListaMarketOverrides, type LlamaLendMarketRaw, type LlamaLendMarketsRaw, type LlamaLendPositionInfo, type LoopPostTradeMetrics, type LstDelegation, type LstDelegationKind, type LstValidator, type LstWithdrawalFetchOptions, type LstWithdrawalRegistryEntry, type LstWithdrawalRequest, type LstWithdrawalRequestsByLst, type LstWithdrawalStatus, MORPHO_LENS, MaxParamThresholds, type MergedUserData, type MidnightBook, type MidnightBookLevel, type MidnightBookSource, type ModeBase, type MorphoMarketOverrides, type MorphoSubgraphProxyConfig, type MorphoUserMarketBalance, type MorphoUserReserveResponse, type MorphoVault, type MorphoVaults, type MulticallRpcBatch, type NumberMap, type OracleDiagnostics, type OraclePriceEntry, type OraclePricesResult, type OutlierGuardConfig, type ParsedBalanceData, type ParsedResponse, type ParsedUserBalance, type PermissionParams, type PoolData, type PoolWithMeta, type PortfolioSummary, type PortfolioTotals, type PostTradeMetrics, type PreparedCall, type PreparedMergedMulticallParams, type PreparedMergedRpcCalls, type PreparedTokenBalanceRpcCalls, type PreparedUserDataRpcCalls, type PriceDerivation, type PriceSelection, type ProtocolParams, type ProviderOptions, type RawRpcBatch, type RawRpcCall, type RawRpcResponse, type ResupplyMarketsRaw, type ResupplyPairIdentity, type ResupplyPairRaw, type ResupplyPositionInfo, type ResupplyWrappedMarket, type RiverMarketRaw, type RiverMarketsRaw, type RiverPositionInfo, STABLECOIN_SYMBOLS, STCELO_MANAGER_ADDRESS, type SelectPricesOptions, type SiloVault, type SiloVaults, type StCeloValidatorGroup, type StaleFeedEntry, type StructuredOraclePrices, type SubAccountSummary, type SumerPositionInput, type SummaryAprData, type SummaryBalanceData, TELLER_CALLS_PER_BID, TERMMAX_CALLS_PER_ACCOUNT, DECIMAL_BASE as TERMMAX_DECIMAL_BASE, TERMMAX_LIQUIDATION_PENALTY, TERMMAX_LIQUIDATION_WINDOW_SECS, TERMMAX_LIQUIDATOR_BONUS, TERMMAX_PARTIAL_CLOSE_FACTOR, TERMMAX_PARTIAL_LIQUIDATION_THRESHOLD_USD, type TellerDiscoveredBid, type TellerDiscovery, type TellerMarketsRaw, type TellerPoolRaw, type TermAuctionOrder, type TermAuctionOrders, type TermBookSource, type TermBookTop, type TermListing, type TermMarketRaw, TermMaxApiSource, type TermMaxBookTop, type TermMaxCurveSegment, type TermMaxDataSource, type TermMaxDiscovery, type TermMaxFeeConfig, type TermMaxMarketConfig, type TermMaxMarketRaw, type TermMaxOrderState, TermSubgraphSource, type TokenApprovalMeta, type TokenApprovalParams, type TokenBalanceEntry, type TokenBalanceQuery, type TokenBalanceResult, type TokenEntry, type TokenList, type TokenListInput, type TrackerDiagnostic, UPSHIFT_CHAIN_IDS, UPSHIFT_VAULTS_URL, type USDPriceMap, type UpshiftApiAsset, type UpshiftApiVault, type UpshiftVault, type UpshiftVaults, type UsddMarketRaw, type UsddMarketsRaw, type UsddPositionInfo, type UserApr, type UserConfig, type UserData, type UserDataResult, type UserLendingPosition, VAULT_SHARE_PRICE_PROBE, VOLATILE_VAULT_OVERRIDES, type VaultAprResult, type VaultClassification, type VaultClassificationFields, type VaultLookupEntry, type VaultMarketExposure, type VaultProvider, type VaultPublicDataAll, type VaultPublicDataResult, type VaultYieldSeries, type VaultYieldSnapshot, type YDaemonVault, YEARN_CHAIN_IDS, YEARN_YDAEMON_BASE, type YearnVault, type YearnVaultKind, type YearnVaults, type YieldProfile, __resetResupplyUserCaches, accountDepositListKey, accountWithdrawalListKey, appendSnapshot, applyPositionDelta, attachPricesToFlashLiquidity, buildFluidFTokensCall, buildLiquityUserCall, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, buildTellerUserCall, buildTermMaxUserCall, buildVaultLookup, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, classifyFreshness, classifyReliability, classifyVault, collectFeedObservations, computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeVaultApr, computeWithdrawDelta, computeZapTradeDeltas, consensusReference, convertExactlyMarketsToResponse, convertFrankencoinMarketsToResponse, convertInverseMarketsToResponse, convertLenderUserDataResult, convertLiquityMarketsToResponse, convertLlamaLendMarketsToResponse, convertResupplyMarketsToResponse, convertRiverMarketsToResponse, convertTellerMarketsToResponse, convertTermMarketsToResponse, convertTermMaxMarketsToResponse, convertUsddMarketsToResponse, createMarketUid, createMidnightBookSource, createMulticallRpcCall, createRawRpcCalls, createTermBookSource, createTermMaxDataSource, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, detectInterfaceKinds, encodeBalanceFetcherCalldata, exactlyPairLtv, exactlyPenaltyRateToAprPercent, exactlyWadRateToPercent, feedKeyOf, feedStatKey, fetchDolomiteAccountNumbers, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, fetchEulerSubAccountIndexes, fetchExactlyMarkets, fetchFlashLiquidityForChain, fetchFluidFTokens, fetchFrankencoinMarkets, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchGmxExecutionFees, fetchGmxTickerPrices, fetchGmxVaults, fetchHypercoreVaults, fetchInverseMarkets, fetchLagoonApiVaults, fetchLagoonVaults, fetchLiquityMarkets, fetchListaVaultsFromChain, fetchLlamaLendMarkets, fetchMorphoUserBalances, fetchMorphoUserPositionMarkets, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromChain, fetchOraclePrices, fetchPendlePrices, fetchResupplyMarkets, fetchRiverMarkets, fetchSiloVaults, fetchTellerMarkets, fetchTermMarkets, fetchTermMaxMarkets, fetchTokenBalances, fetchTokenMetadata, fetchUpshiftApiVaults, fetchUpshiftVaults, fetchUsddMarkets, fetchYearnApiVaults, fetchYearnVaults, filterActiveLenders, filterLendersByProtocol, frankencoinKeyParts, frankencoinLenderKey, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getCachedLiquityTroves, getCachedTellerBids, getCachedTermMaxDiscovery, getCachedTermMaxMarket, getCachedTermMaxMarkets, getCoreValidators, getFluidFTokensConverter, getGmxApiHost, getGmxReadContracts, getGmxUserPositions, getHealthFactor, getHypercoreUserPositions, getHypercoreVaultRegistry, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getLstDelegation, getLstValidators, getLstWithdrawalRegistry, getLstWithdrawalRequests, getMaxAmountClose, getMaxAmountCollateralSwap, getMaxAmountDebtSwap, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getResolvedDolomiteAccountNumbers, getStCeloValidatorGroups, getSubAccountAddress, getSubAccountIndex, getVaultPublicDataAll, getVaultWithdrawalRequests, hasEulerEarnVaultSubgraph, hasLagoonVaults, hasMorphoPositionIndex, hasMorphoUserApi, hasMorphoUserSubgraph, hasUpshiftVaults, hasYearnVaults, inverseKeyParts, inverseLenderKey, isStablecoinSymbol, isYearnV3, keysFromMaps, lenderApiOnly, lenderFamily, liquityCandidateTroveIds, liquityKeyParts, liquityLenderKey, llamaLendKeyParts, llamaLendLenderKey, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTermMaxLtv, parseTokenBalanceResult, positivePart, predictInverseEscrow, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, priceGlvVaults, priceGmMarkets, probeAaveFeedTimestamps, pruneFeedStats, readVaultSharePrices, rejectOutliers as rejectPriceOutliers, resolveDerivation, resolveStCeloDepositGroup, resupplyKeyParts, resupplyLenderKey, riverKeyParts, riverLenderKey, selectAssetGroupPrices, stampVaultClassification, tellerBpsToPercent, tellerImpliedLtv, tellerLenderKey, tellerPoolFromLenderKey, termLenderKey, termMaxApiBase, borrowNif as termMaxBorrowNif, curveApr as termMaxCurveApr, curveAprNumber as termMaxCurveAprNumber, daysToMaturity as termMaxDaysToMaturity, lendNif as termMaxLendNif, mintGtFeeRatio as termMaxMintGtFeeRatio, ratioToNumber as termMaxRatioToNumber, ratioToPercent as termMaxRatioToPercent, tickToAprNumber, tickToPrice, unflattenLenderData, updateFeedStats, usddIlkBytes32, usddKeyParts, usddLenderKey };