@1delta/margin-fetcher 0.0.272 → 0.0.274
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 +727 -187
- package/dist/index.js.map +1 -1
- package/dist/vaults/classification.d.ts.map +1 -1
- package/dist/vaults/curatorName.d.ts +20 -0
- package/dist/vaults/curatorName.d.ts.map +1 -0
- package/dist/vaults/euler-earn/fetchFromSubgraph.d.ts.map +1 -1
- package/dist/vaults/euler-earn/types.d.ts +4 -0
- package/dist/vaults/euler-earn/types.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/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/lagoon/api.d.ts +5 -0
- package/dist/vaults/lagoon/api.d.ts.map +1 -1
- package/dist/vaults/lagoon/fetchPublic.d.ts.map +1 -1
- package/dist/vaults/lookup.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 +3 -3
- package/dist/vaults/morpho/fetchFromSubgraph.d.ts +0 -12
- package/dist/vaults/morpho/fetchFromSubgraph.d.ts.map +0 -1
|
@@ -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.274",
|
|
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.19",
|
|
26
|
+
"@1delta/providers": "0.0.59",
|
|
25
27
|
"@1delta/calldata-sdk": "0.0.151",
|
|
26
28
|
"@1delta/lender-registry": "0.0.32",
|
|
27
29
|
"@1delta/dex-registry": "0.0.101",
|
|
28
|
-
"@1delta/abis": "0.0.18",
|
|
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"}
|