@1delta/margin-fetcher 0.0.273 → 0.0.275
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +895 -202
- package/dist/index.js.map +1 -1
- package/dist/vaults/assetDecimals.d.ts +14 -0
- package/dist/vaults/assetDecimals.d.ts.map +1 -0
- package/dist/vaults/classification.d.ts.map +1 -1
- package/dist/vaults/fetchVaultsAll.d.ts +5 -1
- package/dist/vaults/fetchVaultsAll.d.ts.map +1 -1
- package/dist/vaults/fluid/fetchPublic.d.ts.map +1 -1
- package/dist/vaults/gmx/abis.d.ts +15 -0
- package/dist/vaults/gmx/abis.d.ts.map +1 -1
- package/dist/vaults/gmx/fetchPublic.d.ts.map +1 -1
- package/dist/vaults/gmx/index.d.ts +1 -1
- package/dist/vaults/gmx/index.d.ts.map +1 -1
- package/dist/vaults/gmx/keys.d.ts +20 -0
- package/dist/vaults/gmx/keys.d.ts.map +1 -1
- package/dist/vaults/gmx/pricing.d.ts +30 -3
- package/dist/vaults/gmx/pricing.d.ts.map +1 -1
- package/dist/vaults/gmx/types.d.ts +17 -0
- package/dist/vaults/gmx/types.d.ts.map +1 -1
- package/dist/vaults/index.d.ts +1 -0
- package/dist/vaults/index.d.ts.map +1 -1
- package/dist/vaults/lookup.d.ts.map +1 -1
- package/dist/vaults/lst/abis/etherfi.d.ts +14 -1
- package/dist/vaults/lst/abis/etherfi.d.ts.map +1 -1
- package/dist/vaults/lst/fetchPublic.d.ts.map +1 -1
- package/dist/vaults/lst/readers/etherfi.d.ts +8 -6
- package/dist/vaults/lst/readers/etherfi.d.ts.map +1 -1
- package/dist/vaults/lst/readers/shared.d.ts +20 -0
- package/dist/vaults/lst/readers/shared.d.ts.map +1 -1
- package/dist/vaults/lst/types.d.ts +13 -7
- package/dist/vaults/lst/types.d.ts.map +1 -1
- package/dist/vaults/lst/withdrawals/registry.d.ts.map +1 -1
- package/dist/vaults/morpho/allocationWalk.d.ts +11 -0
- package/dist/vaults/morpho/allocationWalk.d.ts.map +1 -1
- package/dist/vaults/morpho/fetchFromChain.d.ts +4 -3
- package/dist/vaults/morpho/fetchFromChain.d.ts.map +1 -1
- package/dist/vaults/morpho/fetchListaFromChain.d.ts.map +1 -1
- package/dist/vaults/morpho/fetchPublic.d.ts +8 -5
- package/dist/vaults/morpho/fetchPublic.d.ts.map +1 -1
- package/dist/vaults/morpho/index.d.ts +0 -1
- package/dist/vaults/morpho/index.d.ts.map +1 -1
- package/dist/vaults/savings/fetchPublic.d.ts.map +1 -1
- package/dist/vaults/savings/types.d.ts +12 -0
- package/dist/vaults/savings/types.d.ts.map +1 -1
- package/dist/vaults/silo/fetchPublic.d.ts.map +1 -1
- package/dist/vaults/yearn/api.d.ts +93 -0
- package/dist/vaults/yearn/api.d.ts.map +1 -0
- package/dist/vaults/yearn/fetchPublic.d.ts +21 -0
- package/dist/vaults/yearn/fetchPublic.d.ts.map +1 -0
- package/dist/vaults/yearn/index.d.ts +4 -0
- package/dist/vaults/yearn/index.d.ts.map +1 -0
- package/dist/vaults/yearn/types.d.ts +104 -0
- package/dist/vaults/yearn/types.d.ts.map +1 -0
- package/package.json +4 -4
- package/dist/vaults/morpho/fetchFromSubgraph.d.ts +0 -12
- package/dist/vaults/morpho/fetchFromSubgraph.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../src/vaults/silo/fetchPublic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,OAAO,EAAa,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../src/vaults/silo/fetchPublic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,OAAO,EAAa,UAAU,EAAE,MAAM,SAAS,CAAA;AAsT/C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,EAChC,UAAU;IAAE,eAAe,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1D,OAAO,CAAC,UAAU,CA8FpB,CAAA"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Yearn V3 discovery via the public **yDaemon** API.
|
|
3
|
+
*
|
|
4
|
+
* yDaemon is Yearn's metadata service: one GET per chain returns every
|
|
5
|
+
* vault it indexes — V3 *and* legacy V2 — already enriched with USD TVL,
|
|
6
|
+
* realized APR, price-per-share and the underlying token. We fetch it
|
|
7
|
+
* directly (no multicall, no archival RPC) and keep only the **V3**
|
|
8
|
+
* vaults, mirroring the Lagoon fetcher's HTTP-only shape.
|
|
9
|
+
*
|
|
10
|
+
* Endpoint and chain coverage:
|
|
11
|
+
* https://ydaemon.yearn.fi/{chainId}/vaults/all (REST, no auth)
|
|
12
|
+
* Chains are gated by {@link YEARN_CHAIN_IDS} so we don't fire a request
|
|
13
|
+
* at chains where Yearn has no V3 factory. yDaemon paginates with
|
|
14
|
+
* `?limit=N&page=M` (1-indexed); we loop until a short page.
|
|
15
|
+
*
|
|
16
|
+
* V3 vs V2: every vault carries a `version`. V3 vaults are `3.x.y`
|
|
17
|
+
* (`kind` is `Single Strategy` / `Multi Strategy`); V2/legacy are `0.x`
|
|
18
|
+
* (`kind: Legacy`). We keep only `version` starting `3.` so this provider
|
|
19
|
+
* stays a clean ERC-4626 (VaultV3 / TokenizedStrategy) surface.
|
|
20
|
+
*/
|
|
21
|
+
export declare const YEARN_YDAEMON_BASE = "https://ydaemon.yearn.fi";
|
|
22
|
+
/**
|
|
23
|
+
* Chains with endorsed Yearn **V3** vaults indexed by yDaemon (numeric
|
|
24
|
+
* chain ids as strings). Verified against
|
|
25
|
+
* `ydaemon.yearn.fi/{chainId}/vaults/all` — only chains that actually
|
|
26
|
+
* return `version: 3.x` vaults are listed, so we don't waste a round-trip.
|
|
27
|
+
* Extend as Yearn deploys V3 to more chains — the parser is
|
|
28
|
+
* chain-agnostic, this set only decides whether to issue the request.
|
|
29
|
+
*/
|
|
30
|
+
export declare const YEARN_CHAIN_IDS: Set<string>;
|
|
31
|
+
export declare const hasYearnVaults: (chainId: string) => boolean;
|
|
32
|
+
/** True when a yDaemon vault is a V3 (TokenizedStrategy / VaultV3) vault. */
|
|
33
|
+
export declare const isYearnV3: (v: YDaemonVault) => boolean;
|
|
34
|
+
/** Shape of a single yDaemon `/vaults/all` entry (fields we consume). */
|
|
35
|
+
export interface YDaemonVault {
|
|
36
|
+
address: string | null;
|
|
37
|
+
/** Vault kind — `Single Strategy` | `Multi Strategy` (V3) | `Legacy` (V2). */
|
|
38
|
+
kind: string | null;
|
|
39
|
+
symbol: string | null;
|
|
40
|
+
name: string | null;
|
|
41
|
+
/** Semver — `3.0.4`, `0.4.6`, … Drives the V3 filter. */
|
|
42
|
+
version: string | null;
|
|
43
|
+
/** Yearn product category, e.g. `Pendle`, `Curve`, `Velodrome`. */
|
|
44
|
+
category: string | null;
|
|
45
|
+
/** Share-token decimals. */
|
|
46
|
+
decimals: number | null;
|
|
47
|
+
chainID: number | null;
|
|
48
|
+
/** Curated/whitelisted by Yearn. We keep only endorsed V3 vaults. */
|
|
49
|
+
endorsed: boolean | null;
|
|
50
|
+
/** Raw price-per-share — `convertToAssets(10**decimals)`, asset-scaled. */
|
|
51
|
+
pricePerShare: string | null;
|
|
52
|
+
/** Underlying asset token. */
|
|
53
|
+
token: {
|
|
54
|
+
address: string | null;
|
|
55
|
+
symbol: string | null;
|
|
56
|
+
name: string | null;
|
|
57
|
+
decimals: number | null;
|
|
58
|
+
} | null;
|
|
59
|
+
tvl: {
|
|
60
|
+
/** Total underlying held, raw integer string (asset-decimal scaled). */
|
|
61
|
+
totalAssets: string | null;
|
|
62
|
+
/** TVL in USD (decimal number). */
|
|
63
|
+
tvl: number | null;
|
|
64
|
+
/** USD price of one underlying unit. */
|
|
65
|
+
price: number | null;
|
|
66
|
+
} | null;
|
|
67
|
+
apr: {
|
|
68
|
+
/** Realized net APR as a FRACTION (e.g. 0.0512 = 5.12 %). */
|
|
69
|
+
netAPR: number | null;
|
|
70
|
+
fees: {
|
|
71
|
+
/** Performance fee as a fraction (0.1 = 10 %). */
|
|
72
|
+
performance: number | null;
|
|
73
|
+
management: number | null;
|
|
74
|
+
} | null;
|
|
75
|
+
extra: {
|
|
76
|
+
/** Extra staking-rewards APR, fraction. */
|
|
77
|
+
stakingRewardsAPR: number | null;
|
|
78
|
+
} | null;
|
|
79
|
+
/** Forward-looking (expected) net APR, fraction. Fallback for new
|
|
80
|
+
* vaults with no realized `netAPR` history yet. */
|
|
81
|
+
forwardAPR: {
|
|
82
|
+
netAPR: number | null;
|
|
83
|
+
} | null;
|
|
84
|
+
} | null;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Fetch every endorsed Yearn **V3** vault on a chain, paginating until
|
|
88
|
+
* yDaemon returns a short page. Returns the raw yDaemon items already
|
|
89
|
+
* filtered to V3 + endorsed; normalization to `YearnVault` happens in
|
|
90
|
+
* `fetchPublic`.
|
|
91
|
+
*/
|
|
92
|
+
export declare function fetchYearnApiVaults(chainId: string): Promise<YDaemonVault[]>;
|
|
93
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/vaults/yearn/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,kBAAkB,6BAA6B,CAAA;AAE5D;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,aAQ1B,CAAA;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,OACX,CAAA;AAEtC,6EAA6E;AAC7E,eAAO,MAAM,SAAS,GAAI,GAAG,YAAY,KAAG,OACkB,CAAA;AAE9D,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,yDAAyD;IACzD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,qEAAqE;IACrE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAA;IACxB,2EAA2E;IAC3E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,8BAA8B;IAC9B,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACxB,GAAG,IAAI,CAAA;IACR,GAAG,EAAE;QACH,wEAAwE;QACxE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;QAC1B,mCAAmC;QACnC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAClB,wCAAwC;QACxC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KACrB,GAAG,IAAI,CAAA;IACR,GAAG,EAAE;QACH,6DAA6D;QAC7D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,IAAI,EAAE;YACJ,kDAAkD;YAClD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;YAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;SAC1B,GAAG,IAAI,CAAA;QACR,KAAK,EAAE;YACL,2CAA2C;YAC3C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;SACjC,GAAG,IAAI,CAAA;QACR;4DACoD;QACpD,UAAU,EAAE;YACV,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;SACtB,GAAG,IAAI,CAAA;KACT,GAAG,IAAI,CAAA;CACT;AAID;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,EAAE,CAAC,CAoBzB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { GenericTokenList, MulticallRetryFunction } from '../../types';
|
|
2
|
+
import { YearnVaults } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* One-shot fetcher for all endorsed Yearn V3 vaults on a chain.
|
|
5
|
+
*
|
|
6
|
+
* Discovery is HTTP (yDaemon REST), then a best-effort on-chain multicall
|
|
7
|
+
* adds withdrawable `liquidity` per vault (see {@link attachYearnLiquidity}).
|
|
8
|
+
* Returns an empty map for chains without a Yearn V3 deployment.
|
|
9
|
+
*
|
|
10
|
+
* @param chainId target chain
|
|
11
|
+
* @param multicallRetry provider-level multicall executor (used only for
|
|
12
|
+
* the liquidity leg; discovery is HTTP)
|
|
13
|
+
* @param prices optional price map keyed by oracle key / underlying
|
|
14
|
+
* @param tokenList optional token list for hydrating `asset` metadata
|
|
15
|
+
*
|
|
16
|
+
* @returns `YearnVaults` — map keyed by lowercased vault address.
|
|
17
|
+
*/
|
|
18
|
+
export declare const fetchYearnVaults: (chainId: string, multicallRetry: MulticallRetryFunction, prices?: {
|
|
19
|
+
[asset: string]: number;
|
|
20
|
+
}, tokenList?: GenericTokenList) => Promise<YearnVaults>;
|
|
21
|
+
//# sourceMappingURL=fetchPublic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../src/vaults/yearn/fetchPublic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAItE,OAAO,EAAc,WAAW,EAAE,MAAM,SAAS,CAAA;AA8QjD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,EACf,gBAAgB,sBAAsB,EACtC,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,KAC/B,OAAO,CAAC,WAAW,CAmBrB,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { fetchYearnVaults } from './fetchPublic';
|
|
2
|
+
export { YEARN_YDAEMON_BASE, YEARN_CHAIN_IDS, hasYearnVaults, isYearnV3, fetchYearnApiVaults, type YDaemonVault, } from './api';
|
|
3
|
+
export type { YearnVault, YearnVaults, YearnVaultKind } from './types';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vaults/yearn/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,KAAK,YAAY,GAClB,MAAM,OAAO,CAAA;AACd,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { GenericCurrency } from '../../types/general';
|
|
2
|
+
import type { VaultClassificationFields } from '../classification';
|
|
3
|
+
/**
|
|
4
|
+
* Yearn V3 vault kind, as reported by yDaemon.
|
|
5
|
+
* - `Single Strategy` — a TokenizedStrategy (single allocation)
|
|
6
|
+
* - `Multi Strategy` — a VaultV3 allocating across strategies
|
|
7
|
+
* Kept as a string union with a fallback so an unseen value doesn't
|
|
8
|
+
* break parsing.
|
|
9
|
+
*/
|
|
10
|
+
export type YearnVaultKind = 'Single Strategy' | 'Multi Strategy' | (string & {});
|
|
11
|
+
/**
|
|
12
|
+
* Parsed Yearn V3 vault entry.
|
|
13
|
+
*
|
|
14
|
+
* Yearn V3 vaults (VaultV3 + TokenizedStrategy) are standard ERC-4626
|
|
15
|
+
* yield vaults — `deposit`/`redeem`/`convertToAssets`, monotonic NAV.
|
|
16
|
+
* Discovery + all public data (USD TVL, realized APR, price-per-share)
|
|
17
|
+
* come from Yearn's yDaemon API in one batched call per chain — no
|
|
18
|
+
* multicall, no archival RPC (parity with the Lagoon fetcher).
|
|
19
|
+
*
|
|
20
|
+
* Share decimals usually equal the underlying's, but yDaemon reports
|
|
21
|
+
* both, so `assetDecimals` is carried through to `VaultLookupEntry` for
|
|
22
|
+
* correct share→asset formatting. Mirrors the cross-provider
|
|
23
|
+
* load-bearing fields (`address`, `underlying`, `symbol`, `name`,
|
|
24
|
+
* `decimals`, `totalAssets`, `totalSupply`) so `buildVaultLookup` picks
|
|
25
|
+
* it up without branching.
|
|
26
|
+
*/
|
|
27
|
+
export interface YearnVault extends VaultClassificationFields {
|
|
28
|
+
/** Vault (share token) contract address, lowercased. */
|
|
29
|
+
address: string;
|
|
30
|
+
/** Underlying ERC-20 address, lowercased. */
|
|
31
|
+
underlying: string;
|
|
32
|
+
/** Share-token symbol, e.g. `yvUSDC-1`, `yvWETH-2`. */
|
|
33
|
+
symbol: string;
|
|
34
|
+
/** Share-token name as returned by the API / `name()`. */
|
|
35
|
+
name: string;
|
|
36
|
+
/** Cross-provider UI label — `${curatorName ?? 'Yearn'} ${asset.symbol}`. */
|
|
37
|
+
displayName: string;
|
|
38
|
+
/** Curator label — always `'Yearn'` (Yearn-curated product). */
|
|
39
|
+
curatorName: string;
|
|
40
|
+
/** Share-token decimals. */
|
|
41
|
+
decimals: number;
|
|
42
|
+
/** Underlying asset decimals — carried explicitly (usually equals
|
|
43
|
+
* `decimals`, but kept for correct share→asset math). */
|
|
44
|
+
assetDecimals: number;
|
|
45
|
+
/** Total underlying held, raw integer as string (asset-decimal scaled).
|
|
46
|
+
* From `tvl.totalAssets`. */
|
|
47
|
+
totalAssets: string;
|
|
48
|
+
/** Total shares minted, raw integer as string. Derived from
|
|
49
|
+
* `totalAssets * 10**decimals / pricePerShare` (yDaemon doesn't
|
|
50
|
+
* report supply directly). */
|
|
51
|
+
totalSupply: string;
|
|
52
|
+
/** Raw `pricePerShare` — `convertToAssets(10**decimals)`, asset-scaled. */
|
|
53
|
+
pricePerShare: string;
|
|
54
|
+
/** Supply APR in percent (e.g. `5.12` = 5.12 %). Yearn's realized net
|
|
55
|
+
* APR (`apr.netAPR`), falling back to the forward APR for vaults with
|
|
56
|
+
* no realized history yet. Net of the performance fee. */
|
|
57
|
+
supplyRate: number;
|
|
58
|
+
/** Extra staking-rewards APR in percent (`apr.extra.stakingRewardsAPR`),
|
|
59
|
+
* 0 when none. */
|
|
60
|
+
rewardsRate: number;
|
|
61
|
+
/** Sum of `supplyRate + rewardsRate` — what a depositor earns. */
|
|
62
|
+
depositRate: number;
|
|
63
|
+
/** Performance fee in percent (e.g. `10` = 10 %). From
|
|
64
|
+
* `apr.fees.performance`. */
|
|
65
|
+
fee: number;
|
|
66
|
+
/** True when `supplyRate` came from the forward (expected) APR rather
|
|
67
|
+
* than realized history — i.e. the vault is too new to have a TWRR. */
|
|
68
|
+
isForwardApr: boolean;
|
|
69
|
+
/** Vault kind — see {@link YearnVaultKind}. */
|
|
70
|
+
kind: YearnVaultKind;
|
|
71
|
+
/** yDaemon semver, e.g. `3.0.4`. */
|
|
72
|
+
version: string;
|
|
73
|
+
/** Yearn product category, e.g. `Pendle`, `Curve`. Undefined when the
|
|
74
|
+
* API doesn't classify it. */
|
|
75
|
+
category?: string;
|
|
76
|
+
/** Hydrated asset metadata from the provided token list, if any. */
|
|
77
|
+
asset?: GenericCurrency;
|
|
78
|
+
/** USD price of one underlying unit (`tvl.price`, or our price map). */
|
|
79
|
+
priceUsd?: number;
|
|
80
|
+
/** Human-formatted total assets (`totalAssets / 10**assetDecimals`). */
|
|
81
|
+
totalAssetsFormatted: number;
|
|
82
|
+
/** Human-formatted total assets in USD (`tvl.tvl`, or formatted×price). */
|
|
83
|
+
totalAssetsUsd: number;
|
|
84
|
+
/** Currently-withdrawable underlying, raw integer as string. Read
|
|
85
|
+
* on-chain (best-effort): for single-strategy (TokenizedStrategy)
|
|
86
|
+
* vaults from `availableWithdrawLimit`; for multi-strategy (VaultV3)
|
|
87
|
+
* from `totalIdle + Σ strategy.maxWithdraw(vault)` over the default
|
|
88
|
+
* queue. Clamped to `totalAssets`. **Absent** when the on-chain read
|
|
89
|
+
* failed (no multicall, chain RPC down) — treat absent as "unknown",
|
|
90
|
+
* not zero. */
|
|
91
|
+
liquidity?: string;
|
|
92
|
+
/** Human-formatted withdrawable liquidity (`liquidity / 10**assetDecimals`). */
|
|
93
|
+
liquidityFormatted?: number;
|
|
94
|
+
/** Withdrawable liquidity in USD (`liquidityFormatted × priceUsd`). */
|
|
95
|
+
liquidityUsd?: number;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Full parsed payload: per-vault-address map (parity with Morpho / Silo
|
|
99
|
+
* / Euler-Earn / Lagoon / LST). Keyed by lowercased vault address.
|
|
100
|
+
*/
|
|
101
|
+
export type YearnVaults = {
|
|
102
|
+
[vaultAddress: string]: YearnVault;
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vaults/yearn/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAElE;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,gBAAgB,GAChB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAEjB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,UAAW,SAAQ,yBAAyB;IAC3D,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAA;IACd,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB;8DAC0D;IAC1D,aAAa,EAAE,MAAM,CAAA;IAErB;kCAC8B;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB;;mCAE+B;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,aAAa,EAAE,MAAM,CAAA;IAErB;;+DAE2D;IAC3D,UAAU,EAAE,MAAM,CAAA;IAClB;uBACmB;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAA;IACnB;kCAC8B;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX;4EACwE;IACxE,YAAY,EAAE,OAAO,CAAA;IAErB,+CAA+C;IAC/C,IAAI,EAAE,cAAc,CAAA;IACpB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAA;IACf;mCAC+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,oEAAoE;IACpE,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wEAAwE;IACxE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;;;oBAMgB;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAAA;CACnC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1delta/margin-fetcher",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.275",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"async-retry": "^1.3.3",
|
|
24
24
|
"lodash": "^4.17.23",
|
|
25
|
-
"@1delta/abis": "0.0.
|
|
26
|
-
"@1delta/calldata-sdk": "0.0.151",
|
|
27
|
-
"@1delta/providers": "0.0.59",
|
|
25
|
+
"@1delta/abis": "0.0.19",
|
|
28
26
|
"@1delta/lender-registry": "0.0.32",
|
|
27
|
+
"@1delta/calldata-sdk": "0.0.151",
|
|
29
28
|
"@1delta/dex-registry": "0.0.101",
|
|
29
|
+
"@1delta/providers": "0.0.59",
|
|
30
30
|
"@1delta/proxy-fetch": "0.0.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { GenericTokenList } from '../../types';
|
|
2
|
-
import { MorphoVaults } from './types';
|
|
3
|
-
/** True when the chain has a Morpho Goldsky subgraph instead of main-API coverage. */
|
|
4
|
-
export declare const hasMorphoVaultSubgraph: (chainId: string) => boolean;
|
|
5
|
-
/**
|
|
6
|
-
* Fetches MetaMorpho vaults from the Goldsky subgraph for chains not
|
|
7
|
-
* indexed by the main Morpho API (SEI, Celo, Lisk, Soneium, TAC, Hemi).
|
|
8
|
-
*/
|
|
9
|
-
export declare function fetchMorphoVaultsFromSubgraph(chainId: string, prices?: {
|
|
10
|
-
[asset: string]: number;
|
|
11
|
-
}, tokenList?: GenericTokenList): Promise<MorphoVaults>;
|
|
12
|
-
//# sourceMappingURL=fetchFromSubgraph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchFromSubgraph.d.ts","sourceRoot":"","sources":["../../../src/vaults/morpho/fetchFromSubgraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAG9C,OAAO,EAAe,YAAY,EAAE,MAAM,SAAS,CAAA;AAyBnD,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,GAAI,SAAS,MAAM,KAAG,OAClB,CAAA;AAuHvC;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,MAAM,EACf,MAAM,GAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,SAAS,GAAE,gBAAqB,GAC/B,OAAO,CAAC,YAAY,CAAC,CAwBvB"}
|