@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.
Files changed (53) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +727 -187
  4. package/dist/index.js.map +1 -1
  5. package/dist/vaults/classification.d.ts.map +1 -1
  6. package/dist/vaults/curatorName.d.ts +20 -0
  7. package/dist/vaults/curatorName.d.ts.map +1 -0
  8. package/dist/vaults/euler-earn/fetchFromSubgraph.d.ts.map +1 -1
  9. package/dist/vaults/euler-earn/types.d.ts +4 -0
  10. package/dist/vaults/euler-earn/types.d.ts.map +1 -1
  11. package/dist/vaults/fetchVaultsAll.d.ts +5 -1
  12. package/dist/vaults/fetchVaultsAll.d.ts.map +1 -1
  13. package/dist/vaults/gmx/abis.d.ts +15 -0
  14. package/dist/vaults/gmx/abis.d.ts.map +1 -1
  15. package/dist/vaults/gmx/fetchPublic.d.ts.map +1 -1
  16. package/dist/vaults/gmx/index.d.ts +1 -1
  17. package/dist/vaults/gmx/index.d.ts.map +1 -1
  18. package/dist/vaults/gmx/keys.d.ts +20 -0
  19. package/dist/vaults/gmx/keys.d.ts.map +1 -1
  20. package/dist/vaults/gmx/pricing.d.ts +30 -3
  21. package/dist/vaults/gmx/pricing.d.ts.map +1 -1
  22. package/dist/vaults/gmx/types.d.ts +17 -0
  23. package/dist/vaults/gmx/types.d.ts.map +1 -1
  24. package/dist/vaults/index.d.ts +1 -0
  25. package/dist/vaults/index.d.ts.map +1 -1
  26. package/dist/vaults/lagoon/api.d.ts +5 -0
  27. package/dist/vaults/lagoon/api.d.ts.map +1 -1
  28. package/dist/vaults/lagoon/fetchPublic.d.ts.map +1 -1
  29. package/dist/vaults/lookup.d.ts.map +1 -1
  30. package/dist/vaults/morpho/allocationWalk.d.ts +11 -0
  31. package/dist/vaults/morpho/allocationWalk.d.ts.map +1 -1
  32. package/dist/vaults/morpho/fetchFromChain.d.ts +4 -3
  33. package/dist/vaults/morpho/fetchFromChain.d.ts.map +1 -1
  34. package/dist/vaults/morpho/fetchListaFromChain.d.ts.map +1 -1
  35. package/dist/vaults/morpho/fetchPublic.d.ts +8 -5
  36. package/dist/vaults/morpho/fetchPublic.d.ts.map +1 -1
  37. package/dist/vaults/morpho/index.d.ts +0 -1
  38. package/dist/vaults/morpho/index.d.ts.map +1 -1
  39. package/dist/vaults/savings/fetchPublic.d.ts.map +1 -1
  40. package/dist/vaults/savings/types.d.ts +12 -0
  41. package/dist/vaults/savings/types.d.ts.map +1 -1
  42. package/dist/vaults/silo/fetchPublic.d.ts.map +1 -1
  43. package/dist/vaults/yearn/api.d.ts +93 -0
  44. package/dist/vaults/yearn/api.d.ts.map +1 -0
  45. package/dist/vaults/yearn/fetchPublic.d.ts +21 -0
  46. package/dist/vaults/yearn/fetchPublic.d.ts.map +1 -0
  47. package/dist/vaults/yearn/index.d.ts +4 -0
  48. package/dist/vaults/yearn/index.d.ts.map +1 -0
  49. package/dist/vaults/yearn/types.d.ts +104 -0
  50. package/dist/vaults/yearn/types.d.ts.map +1 -0
  51. package/package.json +3 -3
  52. package/dist/vaults/morpho/fetchFromSubgraph.d.ts +0 -12
  53. 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.272",
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"}