@1delta/margin-fetcher 0.0.404 → 0.0.406
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/ccip-5UG36BRY.js +5 -0
- package/dist/{ccip-VFYF2C5F.js.map → ccip-5UG36BRY.js.map} +1 -1
- package/dist/{chunk-Z3MGRQJR.js → chunk-SRWUFRRR.js} +4 -4
- package/dist/{chunk-Z3MGRQJR.js.map → chunk-SRWUFRRR.js.map} +1 -1
- package/dist/index.d.ts +590 -10
- package/dist/index.js +2292 -451
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/dist/ccip-VFYF2C5F.js +0 -5
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, TellerPoolConfig, MorphoTypeVaultEntry } from '@1delta/data-sdk';
|
|
6
|
+
import { TermMarketConfig, LiquityBranchConfig, LiquityConfigChain, RiverMarketConfig, RiverConfigChain, RiverChainData, InverseMarketConfig, InverseConfigChain, InverseChainData, TellerPoolConfig, MorphoTypeVaultEntry } from '@1delta/data-sdk';
|
|
7
7
|
export { MorphoLensAbi } from '@1delta/abis';
|
|
8
8
|
|
|
9
9
|
interface GenericCurrency {
|
|
@@ -408,7 +408,7 @@ interface FixedTermAuction {
|
|
|
408
408
|
*/
|
|
409
409
|
interface FixedTermInfo {
|
|
410
410
|
/** Underlying fixed-term protocol shape. */
|
|
411
|
-
model: 'lista' | 'midnight' | 'term' | 'exactly' | 'teller';
|
|
411
|
+
model: 'lista' | 'midnight' | 'term' | 'exactly' | 'teller' | 'termmax';
|
|
412
412
|
/**
|
|
413
413
|
* Single fixed calendar maturity (unix secs). Undefined for rolling-duration
|
|
414
414
|
* menus (Lista) and multi-maturity markets (Exactly — the maturity menu lives
|
|
@@ -2153,7 +2153,7 @@ interface MidnightBookSource {
|
|
|
2153
2153
|
|
|
2154
2154
|
/** Default hosted Midnight API (see @morpho-org/midnight-sdk MidnightApi). */
|
|
2155
2155
|
declare const DEFAULT_MIDNIGHT_API = "https://api.morpho.org/v0/midnight";
|
|
2156
|
-
type FetchLike$
|
|
2156
|
+
type FetchLike$2 = typeof fetch;
|
|
2157
2157
|
/**
|
|
2158
2158
|
* Hosted-API book source. Reads `GET {base}/books/{marketId}` and reduces the
|
|
2159
2159
|
* `asks`/`bids` price levels to a {@link MidnightBookTop}. This is the swappable
|
|
@@ -2162,7 +2162,7 @@ type FetchLike$1 = typeof fetch;
|
|
|
2162
2162
|
declare class ApiBookSource implements MidnightBookSource {
|
|
2163
2163
|
private readonly baseUrl;
|
|
2164
2164
|
private readonly fetchImpl;
|
|
2165
|
-
constructor(baseUrl: string, fetchImpl?: FetchLike$
|
|
2165
|
+
constructor(baseUrl: string, fetchImpl?: FetchLike$2);
|
|
2166
2166
|
getBookTop(marketId: string): Promise<MidnightBookTop | null>;
|
|
2167
2167
|
/**
|
|
2168
2168
|
* Full ladder for a market — every level per side, best-first (unlike
|
|
@@ -2193,7 +2193,7 @@ declare class ApiBookSource implements MidnightBookSource {
|
|
|
2193
2193
|
getOfferMakers(marketId: string, side: 'bids' | 'asks', assets: bigint): Promise<Record<string, string[]>>;
|
|
2194
2194
|
}
|
|
2195
2195
|
/** Build the default (hosted-API) book source for a chain. */
|
|
2196
|
-
declare function createMidnightBookSource(chainId: string, fetchImpl?: FetchLike$
|
|
2196
|
+
declare function createMidnightBookSource(chainId: string, fetchImpl?: FetchLike$2): MidnightBookSource;
|
|
2197
2197
|
|
|
2198
2198
|
/**
|
|
2199
2199
|
* Top-of-book snapshot for a single Term repo, already reduced to best
|
|
@@ -2383,7 +2383,7 @@ declare function convertTermMarketsToResponse(raw: TermMarketRaw[], chainId: str
|
|
|
2383
2383
|
[m: string]: MorphoGeneralPublicResponse;
|
|
2384
2384
|
};
|
|
2385
2385
|
|
|
2386
|
-
type FetchLike = typeof fetch;
|
|
2386
|
+
type FetchLike$1 = typeof fetch;
|
|
2387
2387
|
/**
|
|
2388
2388
|
* GraphQL subgraph source. `getBookTop` derives the fixed APR from the repo's
|
|
2389
2389
|
* latest completed auction clearing price and open-order depth; `getListings`
|
|
@@ -2392,7 +2392,7 @@ type FetchLike = typeof fetch;
|
|
|
2392
2392
|
declare class TermSubgraphSource implements TermBookSource {
|
|
2393
2393
|
private readonly url;
|
|
2394
2394
|
private readonly fetchImpl;
|
|
2395
|
-
constructor(url: string, fetchImpl?: FetchLike);
|
|
2395
|
+
constructor(url: string, fetchImpl?: FetchLike$1);
|
|
2396
2396
|
private gql;
|
|
2397
2397
|
getBookTop(config: TermMarketConfig): Promise<TermBookTop | null>;
|
|
2398
2398
|
/**
|
|
@@ -2427,7 +2427,7 @@ declare class TermSubgraphSource implements TermBookSource {
|
|
|
2427
2427
|
getAuctionOrders(config: TermMarketConfig, account: string): Promise<TermAuctionOrders | null>;
|
|
2428
2428
|
}
|
|
2429
2429
|
/** Default Term public-data source for a chain (subgraph via resolved URL). */
|
|
2430
|
-
declare function createTermBookSource(chainId: string, fetchImpl?: FetchLike): TermBookSource;
|
|
2430
|
+
declare function createTermBookSource(chainId: string, fetchImpl?: FetchLike$1): TermBookSource;
|
|
2431
2431
|
|
|
2432
2432
|
/**
|
|
2433
2433
|
* Decoded shapes of the Exactly `Previewer.exactly(account)` aggregate view.
|
|
@@ -2826,6 +2826,107 @@ interface RiverPositionInfo {
|
|
|
2826
2826
|
collateralSurplus: string;
|
|
2827
2827
|
}
|
|
2828
2828
|
|
|
2829
|
+
/**
|
|
2830
|
+
* Per-market snapshot of a FiRM market. Numbers are HUMAN units (the
|
|
2831
|
+
* Inverse API serves human numbers; the on-chain fallback normalizes to
|
|
2832
|
+
* match). `null` marks a value the active source could not provide —
|
|
2833
|
+
* the converter degrades gracefully per field.
|
|
2834
|
+
*/
|
|
2835
|
+
interface InverseMarketRaw {
|
|
2836
|
+
market: InverseMarketConfig;
|
|
2837
|
+
/** Market.totalDebt — DOLA units (human). */
|
|
2838
|
+
totalDebt: number | null;
|
|
2839
|
+
/** DOLA sitting in the Market = instant borrowable ceiling (human). */
|
|
2840
|
+
dolaLiquidity: number | null;
|
|
2841
|
+
/** min(dolaLiquidity, dailyLimit − dailyBorrows) — API only. */
|
|
2842
|
+
leftToBorrow: number | null;
|
|
2843
|
+
/** Collateral price in USD (pessimistic-oracle based). */
|
|
2844
|
+
price: number | null;
|
|
2845
|
+
/** Live borrowPaused (falls back to the metadata snapshot). */
|
|
2846
|
+
borrowPaused: boolean | null;
|
|
2847
|
+
/** Borrows already taken today against `dailyLimit` — API only. */
|
|
2848
|
+
dailyBorrows: number | null;
|
|
2849
|
+
}
|
|
2850
|
+
/** Raw public-data batch for the FiRM deployment (one chain). */
|
|
2851
|
+
interface InverseMarketsRaw {
|
|
2852
|
+
/** The bare lender key, `INVERSE`. */
|
|
2853
|
+
lender: string;
|
|
2854
|
+
config: InverseConfigChain | undefined;
|
|
2855
|
+
chainData: InverseChainData | undefined;
|
|
2856
|
+
/**
|
|
2857
|
+
* DBR price in DOLA — THE fixed borrow APR as a decimal (0.041 =
|
|
2858
|
+
* 4.1%). API-first, metadata snapshot as fallback, `null` if neither
|
|
2859
|
+
* resolves.
|
|
2860
|
+
*/
|
|
2861
|
+
dbrPriceDola: number | null;
|
|
2862
|
+
/** Force-replenish penalty APR in bps (54.75% = 5475) — static read. */
|
|
2863
|
+
replenishmentPriceBps: number | null;
|
|
2864
|
+
markets: InverseMarketRaw[];
|
|
2865
|
+
/** Which source filled the market rows. */
|
|
2866
|
+
source: 'api' | 'chain' | 'none';
|
|
2867
|
+
}
|
|
2868
|
+
|
|
2869
|
+
declare function fetchInverseMarkets(lender: string, chainId: string): Promise<InverseMarketsRaw>;
|
|
2870
|
+
|
|
2871
|
+
/**
|
|
2872
|
+
* Synthesized per-market lender key, e.g.
|
|
2873
|
+
* `INVERSE_63DF5E23DB45A2066508318F172BA45B9CD37035` (= the WETH
|
|
2874
|
+
* market). Address-suffixed (Teller/Exactly convention) — FiRM is
|
|
2875
|
+
* Ethereum-only so the chain id is not part of the key.
|
|
2876
|
+
*/
|
|
2877
|
+
declare function inverseLenderKey(lender: string, market: string): string;
|
|
2878
|
+
/** Recover `{ lender, market }` from a per-market key (or undefined). */
|
|
2879
|
+
declare function inverseKeyParts(key: string): {
|
|
2880
|
+
lender: string;
|
|
2881
|
+
market: string;
|
|
2882
|
+
} | undefined;
|
|
2883
|
+
/**
|
|
2884
|
+
* Map the FiRM batch into the shared `MorphoGeneralPublicResponse`
|
|
2885
|
+
* shape, keyed by `INVERSE_<MARKET_ADDR>` — one key per Market
|
|
2886
|
+
* (collateral).
|
|
2887
|
+
*
|
|
2888
|
+
* Per market:
|
|
2889
|
+
* - COLLATERAL entry: deposit-only; LTV = `collateralFactorBps`;
|
|
2890
|
+
* liquidation penalty = `liquidationIncentiveBps`; the close factor
|
|
2891
|
+
* is `liquidationFactorBps` (a liquidation may only close that
|
|
2892
|
+
* share of the position).
|
|
2893
|
+
* - LOAN entry (DOLA): `totalDebt` = market debt; the borrow rate is
|
|
2894
|
+
* the DBR price (FIXED APR — interest is prepaid in DBR, not
|
|
2895
|
+
* accrued on principal, `rateModel: 'dbr'`); `borrowLiquidity` =
|
|
2896
|
+
* `leftToBorrow` (API: min(dailyLimit headroom, DOLA in market)) or
|
|
2897
|
+
* `dolaLiquidity` in the on-chain fallback. There is NO supply side
|
|
2898
|
+
* — `totalDeposits` on the loan row is always 0 (DOLA is Fed-minted
|
|
2899
|
+
* into markets, not user-deposited).
|
|
2900
|
+
*
|
|
2901
|
+
* The full FiRM descriptor (minDebt, dailyLimit, escrow implementation,
|
|
2902
|
+
* DBR addresses, replenishment penalty) rides in
|
|
2903
|
+
* `params.market.inverse` for the calldata builders + worker-api
|
|
2904
|
+
* resolvers.
|
|
2905
|
+
*/
|
|
2906
|
+
declare function convertInverseMarketsToResponse(raw: InverseMarketsRaw, chainId: string, prices?: {
|
|
2907
|
+
[asset: string]: number;
|
|
2908
|
+
}, _additionalYields?: AdditionalYields, tokens?: GenericTokenList): {
|
|
2909
|
+
[m: string]: MorphoGeneralPublicResponse;
|
|
2910
|
+
};
|
|
2911
|
+
|
|
2912
|
+
/** Off-chain `Market.predictEscrow(user)`. */
|
|
2913
|
+
declare function predictInverseEscrow(market: Address, escrowImplementation: Address, user: Address): Address;
|
|
2914
|
+
|
|
2915
|
+
/** Per-position FiRM detail attached to the debt row (raw strings). */
|
|
2916
|
+
interface InversePositionInfo {
|
|
2917
|
+
/** Pessimistic-oracle borrow ceiling for the CURRENT collateral (DOLA raw). */
|
|
2918
|
+
creditLimit: string;
|
|
2919
|
+
/** Max collateral withdrawable right now (collateral raw). */
|
|
2920
|
+
withdrawalLimit: string;
|
|
2921
|
+
/** DBR wallet balance (raw) — the prepaid-interest runway. */
|
|
2922
|
+
dbrBalance: string;
|
|
2923
|
+
/** DBR deficit (raw). > 0 ⇒ force-replenishable at 54.75% APR AND
|
|
2924
|
+
* withdrawals are FROZEN until the user buys DBR. */
|
|
2925
|
+
dbrDeficit: string;
|
|
2926
|
+
/** DBR signed balance (raw, may be negative). */
|
|
2927
|
+
dbrSignedBalance: string;
|
|
2928
|
+
}
|
|
2929
|
+
|
|
2829
2930
|
/**
|
|
2830
2931
|
* Raw on-chain read for ONE Teller `LenderCommitmentGroup` pool. All amounts are
|
|
2831
2932
|
* raw token base units; `minRateBps` is the pool's min borrow APR in BASIS
|
|
@@ -2958,6 +3059,369 @@ interface TellerDiscovery {
|
|
|
2958
3059
|
declare const getCachedTellerBids: (chainId: string, account: string) => TellerDiscovery | undefined;
|
|
2959
3060
|
declare const buildTellerUserCall: (chainId: string, _lender: string, account: string) => Promise<Call[]>;
|
|
2960
3061
|
|
|
3062
|
+
/**
|
|
3063
|
+
* TermMax public-data types.
|
|
3064
|
+
*
|
|
3065
|
+
* ─── SIDE SEMANTICS, READ THIS FIRST ───────────────────────────────────────
|
|
3066
|
+
* TermMax names its two curves from the MAKER's perspective, and they cross
|
|
3067
|
+
* over relative to what a taker (our user) is doing:
|
|
3068
|
+
*
|
|
3069
|
+
* maker's `lendCurveCuts` → consumed by a taker who BORROWS
|
|
3070
|
+
* maker's `borrowCurveCuts` → consumed by a taker who LENDS
|
|
3071
|
+
*
|
|
3072
|
+
* `ITermMaxOrder.apr()` inherits that naming, so its `lendApr` is our user's
|
|
3073
|
+
* BORROW rate and its `borrowApr` is our user's LEND rate — and the API's
|
|
3074
|
+
* `priceInfo.term.lcft` / `bcft` follow the same convention.
|
|
3075
|
+
*
|
|
3076
|
+
* Every field in this file is named for the TAKER action. The crossing happens
|
|
3077
|
+
* exactly once, at the adapter boundary in `apiClient.ts` / `onchain.ts`, and
|
|
3078
|
+
* nowhere else. If a value ever produces lend > borrow on the same order, the
|
|
3079
|
+
* mapping has been applied twice.
|
|
3080
|
+
* ───────────────────────────────────────────────────────────────────────────
|
|
3081
|
+
*/
|
|
3082
|
+
/**
|
|
3083
|
+
* One segment of an order's piecewise pricing curve (TermMax `CurveCut`).
|
|
3084
|
+
*
|
|
3085
|
+
* `xtReserve` is the LEFT EDGE of the segment's validity interval, not a
|
|
3086
|
+
* quantity. Within a segment the swap solves a constant product over
|
|
3087
|
+
* `(xtReserve + offset, liqSquare_eff / (xtReserve + offset))` where
|
|
3088
|
+
* `liqSquare_eff = liqSquare · daysToMaturity · nif / (365 · 1e8)`.
|
|
3089
|
+
*
|
|
3090
|
+
* This is the TermMax analogue of a Midnight book LEVEL, but continuous rather
|
|
3091
|
+
* than discrete — which is why it cannot reuse `MidnightBookLevel`.
|
|
3092
|
+
*/
|
|
3093
|
+
interface TermMaxCurveSegment {
|
|
3094
|
+
xtReserve: bigint;
|
|
3095
|
+
liqSquare: bigint;
|
|
3096
|
+
/** Signed — shifts the virtual reserve. */
|
|
3097
|
+
offset: bigint;
|
|
3098
|
+
}
|
|
3099
|
+
/** Per-order fee ratios, 1e8-scaled (`0.02e8` = 2%). Fees apply to the INTEREST, not principal. */
|
|
3100
|
+
interface TermMaxFeeConfig {
|
|
3101
|
+
lendTakerFeeRatio: bigint;
|
|
3102
|
+
lendMakerFeeRatio: bigint;
|
|
3103
|
+
borrowTakerFeeRatio: bigint;
|
|
3104
|
+
borrowMakerFeeRatio: bigint;
|
|
3105
|
+
mintGtFeeRatio: bigint;
|
|
3106
|
+
mintGtFeeRef: bigint;
|
|
3107
|
+
}
|
|
3108
|
+
/**
|
|
3109
|
+
* Live state of one maker order, already mapped to taker-side semantics.
|
|
3110
|
+
*
|
|
3111
|
+
* An order can source liquidity beyond its own token balance (from an ERC-4626
|
|
3112
|
+
* `pool`, or by minting fresh FT against the maker's own `gtId`), so
|
|
3113
|
+
* balance-derived depth UNDERSTATES what is actually executable. Prefer the
|
|
3114
|
+
* capacity fields on {@link TermMaxBookTop}, or quote.
|
|
3115
|
+
*/
|
|
3116
|
+
interface TermMaxOrderState {
|
|
3117
|
+
orderAddress: string;
|
|
3118
|
+
marketAddress: string;
|
|
3119
|
+
/** The maker; `makerIsVault` when it is a curated ERC-4626 vault. */
|
|
3120
|
+
makerAddress?: string;
|
|
3121
|
+
makerIsVault?: boolean;
|
|
3122
|
+
/** THE pricing state in V2 (V1 used the real XT balance). */
|
|
3123
|
+
virtualXtReserve: bigint;
|
|
3124
|
+
ftReserve: bigint;
|
|
3125
|
+
xtReserve: bigint;
|
|
3126
|
+
maxXtReserve: bigint;
|
|
3127
|
+
/** Maker's own GT, used to mint FT on demand. 0 = none (it is a sentinel). */
|
|
3128
|
+
gtId: bigint;
|
|
3129
|
+
/** Curve a TAKER LENDS against (TermMax's `borrowCurveCuts`). */
|
|
3130
|
+
takerLendCuts: TermMaxCurveSegment[];
|
|
3131
|
+
/** Curve a TAKER BORROWS against (TermMax's `lendCurveCuts`). */
|
|
3132
|
+
takerBorrowCuts: TermMaxCurveSegment[];
|
|
3133
|
+
feeConfig?: TermMaxFeeConfig;
|
|
3134
|
+
/** Optional ERC-4626 base-yield sink; absent/zero when unset. */
|
|
3135
|
+
pool?: string;
|
|
3136
|
+
/** Executable size caps in USD, as reported upstream. */
|
|
3137
|
+
lendCapacityUsd: number;
|
|
3138
|
+
borrowCapacityUsd: number;
|
|
3139
|
+
/** Executable size caps in debt-token units (human, not raw). */
|
|
3140
|
+
lendCapacityAmount: number;
|
|
3141
|
+
borrowCapacityAmount: number;
|
|
3142
|
+
/** Fee-free mid APRs as fractions (0.055 = 5.5%), taker-side. Display only. */
|
|
3143
|
+
takerLendApr?: number;
|
|
3144
|
+
takerBorrowApr?: number;
|
|
3145
|
+
}
|
|
3146
|
+
/**
|
|
3147
|
+
* Best executable rate per side plus aggregate depth for one market — the
|
|
3148
|
+
* direct analogue of `MidnightBookTop`, collapsed across every order.
|
|
3149
|
+
*
|
|
3150
|
+
* "Best" is order-agnostic (we scan all orders): best LEND = highest taker-lend
|
|
3151
|
+
* APR, best BORROW = lowest taker-borrow APR.
|
|
3152
|
+
*/
|
|
3153
|
+
interface TermMaxBookTop {
|
|
3154
|
+
/** Highest taker LEND APR available, as a fraction. Undefined when no order quotes the side. */
|
|
3155
|
+
bestLendApr?: number;
|
|
3156
|
+
/** Lowest taker BORROW APR available, as a fraction. */
|
|
3157
|
+
bestBorrowApr?: number;
|
|
3158
|
+
/** Aggregate executable depth, USD. */
|
|
3159
|
+
lendDepthUsd: number;
|
|
3160
|
+
borrowDepthUsd: number;
|
|
3161
|
+
/** Aggregate executable depth in debt-token units (human). */
|
|
3162
|
+
lendDepthAmount: number;
|
|
3163
|
+
borrowDepthAmount: number;
|
|
3164
|
+
}
|
|
3165
|
+
/**
|
|
3166
|
+
* A TermMax market, i.e. one (debtToken, collateral, maturity) tuple.
|
|
3167
|
+
*
|
|
3168
|
+
* Discovered DYNAMICALLY — never read from a static registry. Matured markets
|
|
3169
|
+
* disappear from upstream entirely rather than lingering with a flag, and ~15%
|
|
3170
|
+
* of the book can roll on a single maturity date.
|
|
3171
|
+
*/
|
|
3172
|
+
interface TermMaxMarketConfig {
|
|
3173
|
+
/** Market contract — also the per-market lender-key body. */
|
|
3174
|
+
market: string;
|
|
3175
|
+
/** FT: the zero-coupon bond ERC-20. THE LEND POSITION. */
|
|
3176
|
+
ft: string;
|
|
3177
|
+
/** XT: the complement (`FT + XT = 1` debt token). */
|
|
3178
|
+
xt: string;
|
|
3179
|
+
/** GT: the ERC-721 loan. THE BORROW POSITION (sub-accounts). */
|
|
3180
|
+
gt: string;
|
|
3181
|
+
/** Debt / loan token. */
|
|
3182
|
+
debtToken: string;
|
|
3183
|
+
debtDecimals: number;
|
|
3184
|
+
collateral: string;
|
|
3185
|
+
collateralDecimals: number;
|
|
3186
|
+
/**
|
|
3187
|
+
* False when decimals could not be resolved from the payload and the 18-dec
|
|
3188
|
+
* default was used. Exists because reading the wrong `assetConfigs` field
|
|
3189
|
+
* names once made EVERY 6-dec stablecoin market silently 10^12 out; a
|
|
3190
|
+
* consumer that cares about exactness should treat `false` as suspect.
|
|
3191
|
+
*/
|
|
3192
|
+
debtDecimalsResolved?: boolean;
|
|
3193
|
+
collateralDecimalsResolved?: boolean;
|
|
3194
|
+
/** Display symbol, e.g. `USDC/PT-sUSDE-13AUG2026@16AUG2026`. */
|
|
3195
|
+
symbol?: string;
|
|
3196
|
+
/** Unix seconds. */
|
|
3197
|
+
maturity: number;
|
|
3198
|
+
/** 1e8-scaled, as strings (as upstream reports them). */
|
|
3199
|
+
maxLtv: string;
|
|
3200
|
+
liquidationLtv: string;
|
|
3201
|
+
/** false ⇒ NO liquidation at all, only post-maturity physical delivery. */
|
|
3202
|
+
liquidatable: boolean;
|
|
3203
|
+
/** Post-maturity liquidation window, seconds (7200 on every live market). */
|
|
3204
|
+
liquidationWindowSeconds?: number;
|
|
3205
|
+
/** Contract `getVersion()`: `v2` = "2.0.0", `v2_01` = "2.0.1". Both are V2. */
|
|
3206
|
+
version?: string;
|
|
3207
|
+
/** Market-level fee config (1e8-scaled). */
|
|
3208
|
+
feeConfig?: TermMaxFeeConfig;
|
|
3209
|
+
/** Oracle the protocol itself prices LTV/liquidation against. */
|
|
3210
|
+
oracle?: string;
|
|
3211
|
+
isMatured?: boolean;
|
|
3212
|
+
isEnabled?: boolean;
|
|
3213
|
+
}
|
|
3214
|
+
/** A market paired with its live book state. `top` is null when the fetch failed. */
|
|
3215
|
+
interface TermMaxMarketRaw {
|
|
3216
|
+
config: TermMaxMarketConfig;
|
|
3217
|
+
top: TermMaxBookTop | null;
|
|
3218
|
+
/** Per-order state, best-first by taker rate. Empty when the market has no live orders. */
|
|
3219
|
+
orders: TermMaxOrderState[];
|
|
3220
|
+
}
|
|
3221
|
+
/**
|
|
3222
|
+
* Pluggable TermMax data source — the hosted API today, a self-hosted indexer
|
|
3223
|
+
* or a pure on-chain reader later. Mirrors `MidnightBookSource`.
|
|
3224
|
+
*/
|
|
3225
|
+
interface TermMaxDataSource {
|
|
3226
|
+
/**
|
|
3227
|
+
* Every live market on a chain with its orders, or null when unavailable.
|
|
3228
|
+
* One upstream call per chain on the happy path.
|
|
3229
|
+
*/
|
|
3230
|
+
getChainMarkets(chainId: string): Promise<TermMaxMarketRaw[] | null>;
|
|
3231
|
+
}
|
|
3232
|
+
|
|
3233
|
+
/**
|
|
3234
|
+
* Resolve a TermMax market from the discovery cache, or undefined when it was
|
|
3235
|
+
* never fetched / has gone stale. Callers that need a guaranteed answer should
|
|
3236
|
+
* `await fetchTermMaxMarkets(chainId)` first (or read the market on-chain).
|
|
3237
|
+
*/
|
|
3238
|
+
declare function getCachedTermMaxMarket(chainId: string | number, market: string): TermMaxMarketConfig | undefined;
|
|
3239
|
+
/** All markets cached for a chain (may be empty before the first fetch). */
|
|
3240
|
+
declare function getCachedTermMaxMarkets(chainId: string | number): TermMaxMarketConfig[];
|
|
3241
|
+
/**
|
|
3242
|
+
* Fetch every live TermMax market on a chain, with its order book collapsed to
|
|
3243
|
+
* a best-rate + depth snapshot.
|
|
3244
|
+
*
|
|
3245
|
+
* Returns `[]` (not an error) when the chain has no TermMax deployment
|
|
3246
|
+
* configured, so callers can fan out across chains unconditionally.
|
|
3247
|
+
*
|
|
3248
|
+
* Markets are DISCOVERED, never read from a static list: matured markets vanish
|
|
3249
|
+
* from upstream entirely rather than lingering with a flag, and ~15% of the
|
|
3250
|
+
* book can roll on a single maturity date.
|
|
3251
|
+
*/
|
|
3252
|
+
declare function fetchTermMaxMarkets(chainId: string, source?: TermMaxDataSource): Promise<TermMaxMarketRaw[]>;
|
|
3253
|
+
|
|
3254
|
+
/**
|
|
3255
|
+
* Map fetched TermMax markets into the shared `MorphoGeneralPublicResponse`
|
|
3256
|
+
* shape, keyed by the synthesized `TERMMAX_<MARKET_ADDR>` lender key.
|
|
3257
|
+
*
|
|
3258
|
+
* Each TermMax market is ONE (debt, collateral, maturity) tuple, so it emits
|
|
3259
|
+
* exactly two entries — unlike Midnight, which has several collateral legs per
|
|
3260
|
+
* market:
|
|
3261
|
+
* - LOAN entry: `depositRate` = best taker LEND APR, `variableBorrowRate` =
|
|
3262
|
+
* best taker BORROW APR (already crossed from TermMax's maker-side names in
|
|
3263
|
+
* `apiClient.parseOrder`), plus order-book depth as the liquidity proxy.
|
|
3264
|
+
* - COLLATERAL entry: maxLtv → collateralFactor, liquidationLtv →
|
|
3265
|
+
* borrowCollateralFactor, fixed 10% liquidation penalty.
|
|
3266
|
+
*
|
|
3267
|
+
* Rates are DISPLAY values from the fee-free mid quote. Anything that actually
|
|
3268
|
+
* executes must price off a live quote at build time.
|
|
3269
|
+
*/
|
|
3270
|
+
declare function convertTermMaxMarketsToResponse(raw: TermMaxMarketRaw[], chainId: string, prices?: {
|
|
3271
|
+
[asset: string]: number;
|
|
3272
|
+
}, _additionalYields?: AdditionalYields, tokens?: GenericTokenList): {
|
|
3273
|
+
[m: string]: MorphoGeneralPublicResponse;
|
|
3274
|
+
};
|
|
3275
|
+
|
|
3276
|
+
/** Hosted TermMax data API (Swagger at `/api-docs`, spec at `/api-docs-json`). */
|
|
3277
|
+
declare const DEFAULT_TERMMAX_API = "https://api.termmax.ts.finance";
|
|
3278
|
+
type FetchLike = typeof fetch;
|
|
3279
|
+
/** Resolve a chain's TermMax API base (config override → hosted default). */
|
|
3280
|
+
declare function termMaxApiBase(chainId: string): string;
|
|
3281
|
+
/**
|
|
3282
|
+
* Hosted-API data source. ONE call per chain — `GET /market/data?chainId=`
|
|
3283
|
+
* returns global config, asset configs, markets, order configs and live order
|
|
3284
|
+
* state together (~240KB on Ethereum).
|
|
3285
|
+
*
|
|
3286
|
+
* This is the swappable seam: a self-hosted indexer or a pure on-chain reader
|
|
3287
|
+
* can implement {@link TermMaxDataSource} later without touching callers.
|
|
3288
|
+
*
|
|
3289
|
+
* Reliability posture: the endpoint is an undocumented app backend (no
|
|
3290
|
+
* versioning or rate-limit statement, `/admin/*` routes on the same host), so
|
|
3291
|
+
* treat it exactly like the Morpho GraphQL API — primary, but the caller keeps
|
|
3292
|
+
* a last-known-good snapshot (see fetchPublic.ts).
|
|
3293
|
+
*/
|
|
3294
|
+
declare class TermMaxApiSource implements TermMaxDataSource {
|
|
3295
|
+
private readonly baseUrl;
|
|
3296
|
+
private readonly fetchImpl;
|
|
3297
|
+
constructor(baseUrl: string, fetchImpl?: FetchLike);
|
|
3298
|
+
getChainMarkets(chainId: string): Promise<TermMaxMarketRaw[] | null>;
|
|
3299
|
+
}
|
|
3300
|
+
/** Default data source for a chain (hosted API, resolved per chain). */
|
|
3301
|
+
declare function createTermMaxDataSource(chainId: string, fetchImpl?: FetchLike): TermMaxDataSource;
|
|
3302
|
+
|
|
3303
|
+
/** TermMax ratio base: `0.01e8` = 1%. */
|
|
3304
|
+
declare const DECIMAL_BASE = 100000000n;
|
|
3305
|
+
/**
|
|
3306
|
+
* Days to maturity, **ceilinged to whole days** — exactly as
|
|
3307
|
+
* `TermMaxOrderV2._daysToMaturity` does it:
|
|
3308
|
+
*
|
|
3309
|
+
* `(maturity - now + SECONDS_IN_DAY - 1) / SECONDS_IN_DAY`
|
|
3310
|
+
*
|
|
3311
|
+
* Reproduce the ceiling or an off-chain quote drifts by up to a full day of
|
|
3312
|
+
* interest against the contract. Returns 0 at/after maturity.
|
|
3313
|
+
*/
|
|
3314
|
+
declare function daysToMaturity(maturity: number, nowSec: number): bigint;
|
|
3315
|
+
/**
|
|
3316
|
+
* Marginal (fee-free) APR implied by a curve at a given reserve, 1e8-scaled —
|
|
3317
|
+
* the same formula `TermMaxOrderV2.apr()` uses:
|
|
3318
|
+
*
|
|
3319
|
+
* `apr = vFt · 1e8 · 365 / (vXt · daysToMaturity)`
|
|
3320
|
+
*
|
|
3321
|
+
* Returns 0n for an empty curve or a matured market. This is a MID PRICE at the
|
|
3322
|
+
* current reserve: it ignores both the taker fee and trade size, so it is for
|
|
3323
|
+
* display and sorting only — never quote against it.
|
|
3324
|
+
*/
|
|
3325
|
+
declare function curveApr(cuts: TermMaxCurveSegment[], virtualXtReserve: bigint, days: bigint): bigint;
|
|
3326
|
+
/** 1e8-scaled ratio → plain fraction (`5_500_000n` → `0.055`). */
|
|
3327
|
+
declare function ratioToNumber(v: bigint): number;
|
|
3328
|
+
/** 1e8-scaled ratio → percent (`5_500_000n` → `5.5`). */
|
|
3329
|
+
declare function ratioToPercent(v: bigint): number;
|
|
3330
|
+
/**
|
|
3331
|
+
* Marginal APR as a fraction for one side, taker-side by construction.
|
|
3332
|
+
*
|
|
3333
|
+
* Pass `takerLendCuts` for the lend rate and `takerBorrowCuts` for the borrow
|
|
3334
|
+
* rate — the maker/taker crossing has already been applied when those fields
|
|
3335
|
+
* were built (see types.ts).
|
|
3336
|
+
*/
|
|
3337
|
+
declare function curveAprNumber(cuts: TermMaxCurveSegment[], virtualXtReserve: bigint, days: bigint): number;
|
|
3338
|
+
/**
|
|
3339
|
+
* Net-interest factor for a taker LEND (`1e8 - lendTakerFeeRatio`).
|
|
3340
|
+
* Guarded so a malformed fee config cannot produce a non-positive factor.
|
|
3341
|
+
*/
|
|
3342
|
+
declare function lendNif(fee?: TermMaxFeeConfig): bigint;
|
|
3343
|
+
/** Net-interest factor for a taker BORROW (`1e8 + borrowTakerFeeRatio`). */
|
|
3344
|
+
declare function borrowNif(fee?: TermMaxFeeConfig): bigint;
|
|
3345
|
+
/**
|
|
3346
|
+
* The GT-mint fee ratio at a given time to maturity, 1e8-scaled — mirrors
|
|
3347
|
+
* `TermMaxMarketV2.mintGtFeeRatio()`:
|
|
3348
|
+
*
|
|
3349
|
+
* `days · feeRatio · feeRef / (365·1e8 + feeRef·days)`
|
|
3350
|
+
*
|
|
3351
|
+
* This is a genuine percentage OF PRINCIPAL charged once at borrow time
|
|
3352
|
+
* (`issueFee = debt · ratio / 1e8`), so it maps onto the cross-protocol
|
|
3353
|
+
* `FixedTermInfo.fees.originationFeePercent`. It is NOT the raw
|
|
3354
|
+
* `feeConfig.mintGtFeeRatio` — prefer reading the contract when you can.
|
|
3355
|
+
*/
|
|
3356
|
+
declare function mintGtFeeRatio(fee: TermMaxFeeConfig | undefined, days: bigint): bigint;
|
|
3357
|
+
/**
|
|
3358
|
+
* TermMax liquidation penalty as a fraction of the repaid debt.
|
|
3359
|
+
*
|
|
3360
|
+
* Protocol constants, not per-market: the liquidator is paid 5% and the
|
|
3361
|
+
* protocol reserve takes 5%, so the borrower loses 10% of the liquidated debt
|
|
3362
|
+
* value. (Loans over $10k can only be liquidated 50% at a time; that is a size
|
|
3363
|
+
* cap, not a penalty, and is modeled as `closeFactor`.)
|
|
3364
|
+
*/
|
|
3365
|
+
declare const TERMMAX_LIQUIDATION_PENALTY = 0.1;
|
|
3366
|
+
declare const TERMMAX_LIQUIDATOR_BONUS = 0.05;
|
|
3367
|
+
/** Partial-liquidation threshold, USD: above it a single call can take at most 50%. */
|
|
3368
|
+
declare const TERMMAX_PARTIAL_LIQUIDATION_THRESHOLD_USD = 10000;
|
|
3369
|
+
declare const TERMMAX_PARTIAL_CLOSE_FACTOR = 0.5;
|
|
3370
|
+
/** Post-maturity liquidation window before physical delivery (`Constants.LIQUIDATION_WINDOW`). */
|
|
3371
|
+
declare const TERMMAX_LIQUIDATION_WINDOW_SECS = 7200;
|
|
3372
|
+
/**
|
|
3373
|
+
* Parse a 1e8-scaled LTV string into a plain fraction (`87500000` → `0.875`).
|
|
3374
|
+
* Returns 0 for missing/garbage input rather than NaN, so a bad config row
|
|
3375
|
+
* degrades to "no collateral value" instead of poisoning the optimizer.
|
|
3376
|
+
*/
|
|
3377
|
+
declare function parseTermMaxLtv(v: string | number | bigint | undefined): number;
|
|
3378
|
+
|
|
3379
|
+
/**
|
|
3380
|
+
* TermMax user data is a DISCOVERY-first, async build — the Teller/Liquity
|
|
3381
|
+
* shape, not the Midnight one.
|
|
3382
|
+
*
|
|
3383
|
+
* Midnight can build synchronously because its positions are keyed
|
|
3384
|
+
* `(marketId, user)`: one fixed slot per user per market, with the market list
|
|
3385
|
+
* coming from a static registry. TermMax has neither property:
|
|
3386
|
+
*
|
|
3387
|
+
* 1. the market list is DYNAMIC (markets churn on every maturity roll and
|
|
3388
|
+
* matured ones vanish upstream), so it must be resolved at call time; and
|
|
3389
|
+
* 2. borrow positions are GT ERC-721 sub-accounts — a user can hold N per
|
|
3390
|
+
* market and the ids are not derivable.
|
|
3391
|
+
*
|
|
3392
|
+
* But it is cheaper than Teller: `TermMaxViewer.getPositionDetails(markets[],
|
|
3393
|
+
* owner)` returns FT/XT/collateral balances AND every GT with its debt and
|
|
3394
|
+
* collateral in ONE call, so discovery and data collapse into a single
|
|
3395
|
+
* multicall entry — no two-phase discovery round-trip. The viewer `try`-guards
|
|
3396
|
+
* each position internally, so one bad loan cannot poison the batch.
|
|
3397
|
+
*
|
|
3398
|
+
* Health is NOT read per GT (`getLiquidationInfo`): it is computed downstream
|
|
3399
|
+
* from LTVs + oracle prices in `createMultiAccountTypeUserState`, exactly as
|
|
3400
|
+
* Midnight does. That keeps this to one call.
|
|
3401
|
+
*/
|
|
3402
|
+
/** Every TermMax market read consumes exactly one viewer call (batched). */
|
|
3403
|
+
declare const TERMMAX_CALLS_PER_ACCOUNT = 1;
|
|
3404
|
+
interface TermMaxDiscovery {
|
|
3405
|
+
/** Markets passed to the viewer, IN ORDER — the parser slices results by index. */
|
|
3406
|
+
markets: TermMaxMarketConfig[];
|
|
3407
|
+
at: number;
|
|
3408
|
+
}
|
|
3409
|
+
/**
|
|
3410
|
+
* The market layout used for the last build on this (chain, account).
|
|
3411
|
+
*
|
|
3412
|
+
* The parser runs as a separate phase, fed only the multicall results, so it
|
|
3413
|
+
* needs the layout the builder chose — the same trick the Teller / Liquity /
|
|
3414
|
+
* Lista-broker caches use.
|
|
3415
|
+
*/
|
|
3416
|
+
declare const getCachedTermMaxDiscovery: (chainId: string, account: string) => TermMaxDiscovery | undefined;
|
|
3417
|
+
/**
|
|
3418
|
+
* Build the user-data call for every live TermMax market on a chain.
|
|
3419
|
+
*
|
|
3420
|
+
* Returns `[]` when the chain has no TermMax deployment, no viewer configured,
|
|
3421
|
+
* or no live markets — callers can fan out unconditionally.
|
|
3422
|
+
*/
|
|
3423
|
+
declare const buildTermMaxUserCall: (chainId: string, _lender: string, account: string) => Promise<Call[]>;
|
|
3424
|
+
|
|
2961
3425
|
type PendleAssetTypes = 'PT' | 'YT' | 'SY' | 'PENDLE_LP';
|
|
2962
3426
|
/**
|
|
2963
3427
|
* Main function to fetch Pendle prices
|
|
@@ -4187,6 +4651,121 @@ type EulerEarnVaults = {
|
|
|
4187
4651
|
[vaultAddress: string]: EulerEarnVault;
|
|
4188
4652
|
};
|
|
4189
4653
|
|
|
4654
|
+
/**
|
|
4655
|
+
* Parsed TermMax curated vault entry.
|
|
4656
|
+
*
|
|
4657
|
+
* TermMax vaults are the CONTINUOUS earn side of a fixed-maturity protocol.
|
|
4658
|
+
* The per-market lend position (buying FT) expires; a vault holds a rolling
|
|
4659
|
+
* book of orders across many maturities and rolls them for the depositor, so
|
|
4660
|
+
* from the outside it behaves like an ordinary ERC-4626 yield vault. Same
|
|
4661
|
+
* relationship Fluid has between its per-vault borrow markets and its fTokens.
|
|
4662
|
+
*
|
|
4663
|
+
* Multiple vaults exist per underlying with different curators (Keyrock, MEV
|
|
4664
|
+
* Capital, Origami and TermMax itself all curate), so the map is keyed by
|
|
4665
|
+
* VAULT ADDRESS —
|
|
4666
|
+
* the `MorphoVaults` / `SiloVaults` / `EulerEarnVaults` convention, not the
|
|
4667
|
+
* key-by-underlying convention Fluid and Gearbox use.
|
|
4668
|
+
*
|
|
4669
|
+
* IMPORTANT — vault assets and lender-side depth are the SAME capital. A
|
|
4670
|
+
* vault's deposits are what appear as lend-side order depth in the TermMax
|
|
4671
|
+
* lender data, so summing "TermMax lender TVL + TermMax vault TVL" double
|
|
4672
|
+
* counts.
|
|
4673
|
+
*/
|
|
4674
|
+
interface TermMaxVault extends VaultClassificationFields {
|
|
4675
|
+
/** Vault (share-token) contract address, lowercased. */
|
|
4676
|
+
address: string;
|
|
4677
|
+
/** Lowercased underlying ERC-20 address (the markets' debt token). */
|
|
4678
|
+
underlying: string;
|
|
4679
|
+
/** Vault share-token symbol, e.g. `TMKR-RLUSD`. */
|
|
4680
|
+
symbol: string;
|
|
4681
|
+
/** Vault share-token name, e.g. `Coinshift rlUSD vault`. */
|
|
4682
|
+
name: string;
|
|
4683
|
+
/** Share-token decimals. */
|
|
4684
|
+
decimals: number;
|
|
4685
|
+
/** Underlying asset decimals — read on-chain, may differ from `decimals`. */
|
|
4686
|
+
assetDecimals: number;
|
|
4687
|
+
/** Total underlying assets held, raw integer as string. */
|
|
4688
|
+
totalAssets: string;
|
|
4689
|
+
/** Total shares minted, raw integer as string. */
|
|
4690
|
+
totalSupply: string;
|
|
4691
|
+
/** Raw `convertToAssets(10**shareDecimals)` — 1 share → X underlying. */
|
|
4692
|
+
convertToAssets: string;
|
|
4693
|
+
/**
|
|
4694
|
+
* Supply APR in percent, **net of the performance fee**.
|
|
4695
|
+
*
|
|
4696
|
+
* TermMax's own formula (`OrderManagerV2`):
|
|
4697
|
+
* `annualizedInterest · (1e8 − performanceFeeRate) / accretingPrincipal`
|
|
4698
|
+
* `annualizedInterest` is GROSS — the fee is taken out of it on accrual
|
|
4699
|
+
* (`_accretingPrincipal += interest − performanceFeeToCurator`), so it must
|
|
4700
|
+
* be netted here to match the README's "net of performance fee" convention.
|
|
4701
|
+
*
|
|
4702
|
+
* Served directly by the API. The on-chain fallback derives it, because
|
|
4703
|
+
* `apr()` AND `accretingPrincipal()` both revert on the deployed 2.0.0
|
|
4704
|
+
* vaults — it substitutes `totalAssets` as the denominator, which is larger
|
|
4705
|
+
* and so understates rather than overstates. The derivation was validated
|
|
4706
|
+
* against the API on both funded Ethereum vaults: 2.579% and 1.449%,
|
|
4707
|
+
* matching to 3 decimals.
|
|
4708
|
+
*/
|
|
4709
|
+
supplyRate: number;
|
|
4710
|
+
/** Extra rewards APR (TMX emissions). 0 on the on-chain fallback, which
|
|
4711
|
+
* cannot see them. */
|
|
4712
|
+
rewardsRate: number;
|
|
4713
|
+
/** `supplyRate + rewardsRate` — what a depositor actually earns. */
|
|
4714
|
+
depositRate: number;
|
|
4715
|
+
/** Performance fee in percent (e.g. `10` = 10%). */
|
|
4716
|
+
fee: number;
|
|
4717
|
+
/** Governance timelock in seconds for curator/guardian config changes. */
|
|
4718
|
+
timelock?: number;
|
|
4719
|
+
/** Curator address, lowercased. */
|
|
4720
|
+
curator?: string;
|
|
4721
|
+
/**
|
|
4722
|
+
* Human-readable curator label.
|
|
4723
|
+
*
|
|
4724
|
+
* ONLY the API carries this — the on-chain surface exposes an address and
|
|
4725
|
+
* nothing else. Do NOT derive it from `name`: the vault literally called
|
|
4726
|
+
* "Coinshift rlUSD vault" is curated by **Keyrock**.
|
|
4727
|
+
*/
|
|
4728
|
+
curatorName?: string;
|
|
4729
|
+
/** Guardian address, lowercased. */
|
|
4730
|
+
guardian?: string;
|
|
4731
|
+
/** Hydrated asset metadata from the provided token list, if any. */
|
|
4732
|
+
asset?: GenericCurrency;
|
|
4733
|
+
/** USD price of one underlying unit, if prices were supplied. */
|
|
4734
|
+
priceUsd?: number;
|
|
4735
|
+
/** `totalAssets / 10^assetDecimals`. */
|
|
4736
|
+
totalAssetsFormatted: number;
|
|
4737
|
+
/** `totalAssetsFormatted * priceUsd`. */
|
|
4738
|
+
totalAssetsUsd: number;
|
|
4739
|
+
/**
|
|
4740
|
+
* Immediately withdrawable underlying, raw integer as string.
|
|
4741
|
+
*
|
|
4742
|
+
* A TermMax vault's capital is committed to maker orders until each order's
|
|
4743
|
+
* maturity, so only part is instantly exitable — the rest needs the curator
|
|
4744
|
+
* to unwind or a maturity to roll. Sourced from the API's `redeemableAmt`
|
|
4745
|
+
* (falling back to `idleFunds`), or the vault's own underlying balance
|
|
4746
|
+
* on-chain. Deliberately NOT `totalAssets`.
|
|
4747
|
+
*/
|
|
4748
|
+
liquidity: string;
|
|
4749
|
+
liquidityFormatted: number;
|
|
4750
|
+
liquidityUsd: number;
|
|
4751
|
+
/** Contract `getVersion()` / API `version`, e.g. `"2.0.0"` / `"v2"`. */
|
|
4752
|
+
version?: string;
|
|
4753
|
+
/** Vault is paused — deposits blocked, existing funds still visible. */
|
|
4754
|
+
isPaused?: boolean;
|
|
4755
|
+
/** Deposit cap in underlying base units (API `capacity`). */
|
|
4756
|
+
supplyCap?: string;
|
|
4757
|
+
/**
|
|
4758
|
+
* The vault's ERC-4626 base-yield pool for idle funds (v2_01 "composable
|
|
4759
|
+
* base yield"). Idle capital earns here instead of sitting dead.
|
|
4760
|
+
*/
|
|
4761
|
+
basePool?: string;
|
|
4762
|
+
}
|
|
4763
|
+
/** Full parsed payload: per-vault-address map. */
|
|
4764
|
+
type TermMaxVaults = {
|
|
4765
|
+
/** Keyed by lowercased vault address. */
|
|
4766
|
+
[vaultAddress: string]: TermMaxVault;
|
|
4767
|
+
};
|
|
4768
|
+
|
|
4190
4769
|
/**
|
|
4191
4770
|
* Validator / delegation dataset for LST deposits.
|
|
4192
4771
|
*
|
|
@@ -6068,7 +6647,7 @@ interface VaultLookupEntry {
|
|
|
6068
6647
|
declare function buildVaultLookup(data: VaultPublicDataAll): Map<string, VaultLookupEntry>;
|
|
6069
6648
|
|
|
6070
6649
|
/** Supported ERC-4626 vault providers. */
|
|
6071
|
-
type VaultProvider = 'fluid' | 'gearbox' | 'morpho' | 'lista' | 'silo' | 'euler-earn' | 'lst' | 'savings' | 'lagoon' | 'aave-earn' | 'upshift' | 'yearn' | 'hypercore' | 'gmx';
|
|
6650
|
+
type VaultProvider = 'fluid' | 'gearbox' | 'morpho' | 'lista' | 'silo' | 'euler-earn' | 'termmax' | 'lst' | 'savings' | 'lagoon' | 'aave-earn' | 'upshift' | 'yearn' | 'hypercore' | 'gmx';
|
|
6072
6651
|
/**
|
|
6073
6652
|
* Per-provider payload returned by `getVaultPublicDataAll`. Each entry is
|
|
6074
6653
|
* present only when the matching provider was requested AND its fetch
|
|
@@ -6085,6 +6664,7 @@ interface VaultPublicDataAll {
|
|
|
6085
6664
|
lista?: MorphoVaults;
|
|
6086
6665
|
silo?: SiloVaults;
|
|
6087
6666
|
'euler-earn'?: EulerEarnVaults;
|
|
6667
|
+
termmax?: TermMaxVaults;
|
|
6088
6668
|
lst?: LstShareTokens;
|
|
6089
6669
|
savings?: SavingsVaults;
|
|
6090
6670
|
lagoon?: LagoonVaults;
|
|
@@ -6874,4 +7454,4 @@ interface FetchTokenBalancesOptions {
|
|
|
6874
7454
|
*/
|
|
6875
7455
|
declare function fetchTokenBalances(chainId: string, account: string, tokens: string[], options?: FetchTokenBalancesOptions): Promise<TokenBalanceResult>;
|
|
6876
7456
|
|
|
6877
|
-
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, type Denomination, type DepthMap, EMPTY_BALANCE, type EModeAssets, type EModeData, type EModeResult, 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, 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, type TellerDiscoveredBid, type TellerDiscovery, type TellerMarketsRaw, type TellerPoolRaw, type TermAuctionOrder, type TermAuctionOrders, type TermBookSource, type TermBookTop, type TermListing, type TermMarketRaw, 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 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, 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, convertLenderUserDataResult, convertLiquityMarketsToResponse, convertRiverMarketsToResponse, convertTellerMarketsToResponse, convertTermMarketsToResponse, createMarketUid, createMidnightBookSource, createMulticallRpcCall, createRawRpcCalls, createTermBookSource, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, detectInterfaceKinds, encodeBalanceFetcherCalldata, exactlyLenderKey, exactlyMarketFromLenderKey, exactlyPairLtv, exactlyPenaltyRateToAprPercent, exactlyWadRateToPercent, feedKeyOf, feedStatKey, fetchDolomiteAccountNumbers, fetchEulerEarnVaults, fetchEulerEarnVaultsFromSubgraph, fetchEulerSubAccountIndexes, fetchExactlyMarkets, fetchFlashLiquidityForChain, fetchFluidFTokens, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchGmxExecutionFees, fetchGmxTickerPrices, fetchGmxVaults, fetchHypercoreVaults, fetchLagoonApiVaults, fetchLagoonVaults, fetchLiquityMarkets, fetchListaVaultsFromChain, fetchMorphoUserBalances, fetchMorphoUserPositionMarkets, fetchMorphoVaults, fetchMorphoVaultsFromApi, fetchMorphoVaultsFromChain, fetchOraclePrices, fetchPendlePrices, fetchRiverMarkets, fetchSiloVaults, fetchTellerMarkets, fetchTermMarkets, fetchTokenBalances, fetchTokenMetadata, fetchUpshiftApiVaults, fetchUpshiftVaults, fetchYearnApiVaults, fetchYearnVaults, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getCachedLiquityTroves, getCachedTellerBids, 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, isStablecoinSymbol, isYearnV3, keysFromMaps, lenderApiOnly, lenderFamily, liquityCandidateTroveIds, liquityKeyParts, liquityLenderKey, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, priceGlvVaults, priceGmMarkets, probeAaveFeedTimestamps, pruneFeedStats, readVaultSharePrices, rejectOutliers as rejectPriceOutliers, resolveDerivation, resolveStCeloDepositGroup, riverKeyParts, riverLenderKey, selectAssetGroupPrices, stampVaultClassification, tellerBpsToPercent, tellerImpliedLtv, tellerLenderKey, tellerPoolFromLenderKey, termLenderKey, tickToAprNumber, tickToPrice, unflattenLenderData, updateFeedStats };
|
|
7457
|
+
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, 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 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, createMarketUid, createMidnightBookSource, createMulticallRpcCall, createRawRpcCalls, createTermBookSource, createTermMaxDataSource, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, detectInterfaceKinds, encodeBalanceFetcherCalldata, exactlyLenderKey, exactlyMarketFromLenderKey, 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, 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 };
|