@1delta/margin-fetcher 0.0.284 → 0.0.286

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 (45) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +646 -354
  4. package/dist/index.js.map +1 -1
  5. package/dist/lending/public-data/init/publicCallParse.d.ts.map +1 -1
  6. package/dist/lending/user-data/euler/eulerDataApi.d.ts +36 -0
  7. package/dist/lending/user-data/euler/eulerDataApi.d.ts.map +1 -0
  8. package/dist/lending/user-data/euler/userCallBuild.d.ts +6 -6
  9. package/dist/lending/user-data/euler/userCallBuild.d.ts.map +1 -1
  10. package/dist/lending/user-data/euler/userCallParse.d.ts.map +1 -1
  11. package/dist/lending/user-data/fetch-balances/e2e.d.ts +3 -1
  12. package/dist/lending/user-data/fetch-balances/e2e.d.ts.map +1 -1
  13. package/dist/lending/user-data/fetch-balances/parse.d.ts.map +1 -1
  14. package/dist/utils/multicall.d.ts +15 -0
  15. package/dist/utils/multicall.d.ts.map +1 -1
  16. package/dist/vaults/classification.d.ts.map +1 -1
  17. package/dist/vaults/euler-earn/fetchFromApi.d.ts +18 -0
  18. package/dist/vaults/euler-earn/fetchFromApi.d.ts.map +1 -0
  19. package/dist/vaults/euler-earn/fetchFromSubgraph.d.ts +2 -0
  20. package/dist/vaults/euler-earn/fetchFromSubgraph.d.ts.map +1 -1
  21. package/dist/vaults/euler-earn/fetchPublic.d.ts +10 -8
  22. package/dist/vaults/euler-earn/fetchPublic.d.ts.map +1 -1
  23. package/dist/vaults/euler-earn/index.d.ts +2 -1
  24. package/dist/vaults/euler-earn/index.d.ts.map +1 -1
  25. package/dist/vaults/fetchVaultsAll.d.ts +6 -1
  26. package/dist/vaults/fetchVaultsAll.d.ts.map +1 -1
  27. package/dist/vaults/index.d.ts +1 -0
  28. package/dist/vaults/index.d.ts.map +1 -1
  29. package/dist/vaults/lookup.d.ts.map +1 -1
  30. package/dist/vaults/upshift/api.d.ts +67 -0
  31. package/dist/vaults/upshift/api.d.ts.map +1 -0
  32. package/dist/vaults/upshift/fetchPublic.d.ts +20 -0
  33. package/dist/vaults/upshift/fetchPublic.d.ts.map +1 -0
  34. package/dist/vaults/upshift/index.d.ts +4 -0
  35. package/dist/vaults/upshift/index.d.ts.map +1 -0
  36. package/dist/vaults/upshift/types.d.ts +79 -0
  37. package/dist/vaults/upshift/types.d.ts.map +1 -0
  38. package/dist/yields/intrinsic/fetchers/accountable.d.ts +3 -0
  39. package/dist/yields/intrinsic/fetchers/accountable.d.ts.map +1 -0
  40. package/dist/yields/intrinsic/fetchers/monadLst.d.ts +3 -0
  41. package/dist/yields/intrinsic/fetchers/monadLst.d.ts.map +1 -0
  42. package/dist/yields/intrinsic/fetchers/upshift.d.ts +3 -0
  43. package/dist/yields/intrinsic/fetchers/upshift.d.ts.map +1 -0
  44. package/dist/yields/intrinsic/index.d.ts.map +1 -1
  45. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/init/publicCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAQjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAkBjD,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAOvD,CAAA;AAED,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,gBAAqB,KAC/B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,yBAAyB,GAAG,SAAS,EAAE,MAAM,CA8HjE,CAAA"}
1
+ {"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/init/publicCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAQjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAwBjD,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAOvD,CAAA;AAED,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,gBAAqB,KAC/B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,yBAAyB,GAAG,SAAS,EAAE,MAAM,CAkIjE,CAAA"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Client for the Euler Data API (V3) — https://v3.euler.finance/v3/docs
3
+ *
4
+ * Replaces the Goldsky `euler-v2-<chain>` subgraphs (which Euler is
5
+ * deprecating, and which were observed running ~7 weeks behind chain head on
6
+ * BSC, silently dropping freshly-opened sub-account positions).
7
+ *
8
+ * For sub-account discovery we hit `/accounts/{owner}/positions?forceFresh=true`,
9
+ * which performs a live on-chain AccountLens read server-side (`source:
10
+ * accountLensVaultInfo`) rather than serving indexed/cached data — so a
11
+ * position opened seconds ago is visible.
12
+ */
13
+ /**
14
+ * Chains the Euler Data API serves (verified live via `/v3/evk/vaults` +
15
+ * `/v3/accounts/.../positions`). Chains with an Euler deployment NOT covered
16
+ * here (Optimism 10, Gnosis 100, Worldchain 480, Mantle 5000, Ink 57073) fall
17
+ * back to an on-chain 256 sub-account scan in the build path.
18
+ */
19
+ export declare const EULER_API_CHAINS: ReadonlySet<string>;
20
+ export declare const eulerApiSupportsChain: (chainId: string) => boolean;
21
+ interface EulerApiPosition {
22
+ /** Sub-account address holding the position. */
23
+ account: string;
24
+ subAccount?: {
25
+ owner?: string;
26
+ };
27
+ }
28
+ /**
29
+ * Fetches every position for `owner` across all of its sub-accounts on
30
+ * `chainId`. With `forceFresh` the API does a live on-chain lens read.
31
+ * Returns `undefined` when the chain is unsupported or the request fails —
32
+ * callers distinguish this from "owner has no positions" (`[]`).
33
+ */
34
+ export declare function fetchEulerPositionsFromApi(chainId: string, owner: string, forceFresh?: boolean): Promise<EulerApiPosition[] | undefined>;
35
+ export {};
36
+ //# sourceMappingURL=eulerDataApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eulerDataApi.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/euler/eulerDataApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAc/C,CAAA;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,OACzB,CAAA;AAE/B,UAAU,gBAAgB;IACxB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAChC;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,UAAU,UAAO,GAChB,OAAO,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,CAsCzC"}
@@ -5,9 +5,8 @@ import { Call } from '../../../utils/multicall';
5
5
  */
6
6
  export declare const ALL_EULER_SUB_ACCOUNT_INDEXES: number[];
7
7
  /**
8
- * Fetches sub-account indexes for an owner from the Euler V2 subgraph.
9
- * Results are memoized for 30 s so that concurrent build + parse calls
10
- * share the same result. Falls back to [0] on any error.
8
+ * Active sub-account indexes for an owner (true set; for the next-account
9
+ * route). Falls back to [0] when the API is unsupported or fails.
11
10
  */
12
11
  export declare function fetchEulerSubAccountIndexes(chainId: string, owner: string): Promise<number[]>;
13
12
  /**
@@ -40,11 +39,12 @@ export declare function resolveSubAccountIndexes(_account: string, subAccountInd
40
39
  * `getAccountEnabledVaultsInfo(evc, subAccountAddr)` call
41
40
  * via the AccountLens contract.
42
41
  *
43
- * When no `subAccountIndexes` are provided, queries the Euler subgraph
44
- * to discover active sub-accounts. Falls back to index [0] on error.
42
+ * When no `subAccountIndexes` are provided, discovers active sub-accounts via
43
+ * the Euler Data API; on unsupported chains / API failure it scans all 256
44
+ * indexes on-chain (empties are dropped by the parser).
45
45
  *
46
46
  * @param subAccountIndexes - Numeric sub-account indexes to fetch.
47
- * When undefined, fetches from subgraph.
47
+ * When undefined, resolved via {@link resolveEulerBuildIndexes}.
48
48
  * The owner's native index is always included automatically.
49
49
  * Pass a narrower set (e.g. [0]) for simulations where only one account is needed.
50
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/euler/userCallBuild.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAG/C;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,EAGjD,CAAA;AAyCD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB;AAiDD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,GAAG,SAAS,CAGtB;AAqBD;;;;GAIG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;GAGG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EAAE,GAC1B,MAAM,EAAE,CAIV;AAMD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,oBAAoB,MAAM,EAAE,KAC3B,OAAO,CAAC,IAAI,EAAE,CAuBhB,CAAA;AAED,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/euler/userCallBuild.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAI/C;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,EAGjD,CAAA;AA6DD;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;AA8BD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,GAAG,SAAS,CAGtB;AAqBD;;;;GAIG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;GAGG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EAAE,GAC1B,MAAM,EAAE,CAIV;AAMD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,oBAAoB,MAAM,EAAE,KAC3B,OAAO,CAAC,IAAI,EAAE,CAuBhB,CAAA;AAED,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/euler/userCallParse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAU9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,EAC7B,oBAAoB,MAAM,EAAE,KAC3B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CA2HhD,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/euler/userCallParse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAU9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,EAC7B,oBAAoB,MAAM,EAAE,KAC3B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CAgIhD,CAAA"}
@@ -11,9 +11,11 @@ import type { ChainQuery, PreparedUserDataRpcCalls } from './types';
11
11
  * @param allowFailure - multicall can fail in single call, default is true
12
12
  * @param batchSize - multicall batch size, default is 4096
13
13
  * @param logs - show multicall error logs, default is false
14
+ * @param concurrency - number of distinct RPC endpoints to shard batches
15
+ * across in parallel; <= 1 keeps the legacy single-endpoint path
14
16
  * @returns The raw results from the multicall, "0x" for failures
15
17
  */
16
- export declare const getLenderUserDataResult: (chainId: string, queriesRaw: LenderUserQuery[], getEvmClient: GetEvmClientFunction, allowFailure?: boolean, batchSize?: number, retries?: number, logs?: boolean) => Promise<any[]>;
18
+ export declare const getLenderUserDataResult: (chainId: string, queriesRaw: LenderUserQuery[], getEvmClient: GetEvmClientFunction, allowFailure?: boolean, batchSize?: number, retries?: number, logs?: boolean, concurrency?: number) => Promise<any[]>;
17
19
  export declare const getLenderUserDataResultForwarded: (chainId: string, queriesRaw: any[], // LenderUserQuery[]
18
20
  getEvmClient: GetEvmClientFunction, allowFailure?: boolean, batchSize?: number, retries?: number, logs?: boolean) => Promise<any[]>;
19
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"e2e.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/e2e.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAuB,MAAM,4BAA4B,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,YAAY,EAAuB,MAAM,wBAAwB,CAAA;AAG1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,KAAK,EAAE,UAAU,EAAmB,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAEpF;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,cAAc,oBAAoB,EAClC,sBAAmB,EACnB,kBAAwC,EACxC,gBAAW,EACX,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CA8Bf,CAAA;AAED,eAAO,MAAM,gCAAgC,GAC3C,SAAS,MAAM,EACf,YAAY,GAAG,EAAE,EAAE,oBAAoB;AACvC,cAAc,oBAAoB,EAClC,sBAAmB,EACnB,kBAAwC,EACxC,gBAAW,EACX,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CAmCf,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,kBAAwC,EACxC,iBAAmB,EACnB,sBAAmB,KAClB,OAAO,CAAC,wBAAwB,CA2ClC,CAAA;AASD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,YAAY,EAAE,UAAU,EAAE,EAC1B,WAAW,EAAE,UAAU,GAAG,YAAY,EAAE,GACvC,OAAO,CAAC;IACT,CAAC,OAAO,EAAE,MAAM,GAAG;QACjB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;KAC3B,CAAA;CACF,CAAC,CAsED"}
1
+ {"version":3,"file":"e2e.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/e2e.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAuB,MAAM,4BAA4B,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,YAAY,EAAuB,MAAM,wBAAwB,CAAA;AAG1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,KAAK,EAAE,UAAU,EAAmB,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAEpF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,cAAc,oBAAoB,EAClC,sBAAmB,EACnB,kBAAwC,EACxC,gBAAW,EACX,cAAY,EACZ,oBAAe,KACd,OAAO,CAAC,GAAG,EAAE,CA6Bf,CAAA;AAED,eAAO,MAAM,gCAAgC,GAC3C,SAAS,MAAM,EACf,YAAY,GAAG,EAAE,EAAE,oBAAoB;AACvC,cAAc,oBAAoB,EAClC,sBAAmB,EACnB,kBAAwC,EACxC,gBAAW,EACX,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CAmCf,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,kBAAwC,EACxC,iBAAmB,EACnB,sBAAmB,KAClB,OAAO,CAAC,wBAAwB,CA2ClC,CAAA;AASD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,YAAY,EAAE,UAAU,EAAE,EAC1B,WAAW,EAAE,UAAU,GAAG,YAAY,EAAE,GACvC,OAAO,CAAC;IACT,CAAC,OAAO,EAAE,MAAM,GAAG;QACjB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;KAC3B,CAAA;CACF,CAAC,CAsED"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/parse.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAuB,MAAM,4BAA4B,CAAA;AAejF,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAqFtE;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,YAAY,GAAG,EAAE,EACjB,aAAa,2BAA2B,KACvC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;CAwC9B,CAAA"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/parse.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,eAAe,EAEhB,MAAM,4BAA4B,CAAA;AAgBnC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAkHtE;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,YAAY,GAAG,EAAE,EACjB,aAAa,2BAA2B,KACvC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;CA4C9B,CAAA"}
@@ -3,6 +3,21 @@ import { PreparedCall } from './rpcCall';
3
3
  export type Call = GeneralCall;
4
4
  /** Same as Multicall viem except that the abi param is supposed to be the abi per call */
5
5
  export declare const multicallViemAbiArray: (chainId: string, abi: any[], calls: Call[], getEvmClient: GetEvmClientFunction, retry?: boolean, providerId?: number, retries?: number, allowFailure?: boolean, batchSize?: number, logs?: boolean) => Promise<any[]>;
6
+ /**
7
+ * Sharded variant of {@link multicallViemAbiArray}. Splits the flat call set
8
+ * into batches of `batchSize` and distributes them across up to `poolSize`
9
+ * distinct RPC endpoints (via `getEvmClient(chainId, rpcId)`, whose rpcId is
10
+ * taken modulo the available RPC list). Batches run concurrently — one in
11
+ * flight per endpoint — so wall-clock is roughly `(numBatches / poolSize)`
12
+ * round-trips instead of `numBatches` on a single endpoint.
13
+ *
14
+ * Failover is per-batch: a failed batch is retried on the *next* rpcId (and
15
+ * its batchSize halved on each attempt to dodge size/response limits) without
16
+ * discarding the batches that already succeeded. Results are reassembled in
17
+ * the original call order. If a batch still fails after `retries` failovers,
18
+ * the error propagates (same all-or-nothing-per-chain semantics as before).
19
+ */
20
+ export declare const multicallShardedAbiArray: (chainId: string, abi: any[], calls: Call[], getEvmClient: GetEvmClientFunction, poolSize: number, retries?: number, allowFailure?: boolean, batchSize?: number, logs?: boolean) => Promise<any[]>;
6
21
  export interface MulticallConfig {
7
22
  chainId: string;
8
23
  allowFailure: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../src/utils/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAqB,YAAY,EAAE,MAAM,WAAW,CAAA;AAO3D,MAAM,MAAM,IAAI,GAAG,WAAW,CAAA;AAS9B,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,KAAK,GAAG,EAAE,EACV,OAAO,IAAI,EAAE,EACb,cAAc,oBAAoB,EAClC,eAAY,EACZ,mBAAc,EACd,gBAAoB,EACpB,sBAAmB,EACnB,kBAAwC,EACxC,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CA6Cf,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,EAAE,EACV,KAAK,EAAE,IAAI,EAAE,GACZ,YAAY,EAAE,CAShB;AAED,eAAO,MAAM,oBAAoB,GAC/B,eAAe,YAAY,EAAE,EAC7B,QAAQ,eAAe,EACvB,cAAc,oBAAoB,KACjC,OAAO,CAAC,GAAG,EAAE,CAoBf,CAAA"}
1
+ {"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../../src/utils/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAqB,YAAY,EAAE,MAAM,WAAW,CAAA;AAO3D,MAAM,MAAM,IAAI,GAAG,WAAW,CAAA;AAS9B,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,KAAK,GAAG,EAAE,EACV,OAAO,IAAI,EAAE,EACb,cAAc,oBAAoB,EAClC,eAAY,EACZ,mBAAc,EACd,gBAAoB,EACpB,sBAAmB,EACnB,kBAAwC,EACxC,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CA6Cf,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,KAAK,GAAG,EAAE,EACV,OAAO,IAAI,EAAE,EACb,cAAc,oBAAoB,EAClC,UAAU,MAAM,EAChB,gBAAoB,EACpB,sBAAmB,EACnB,kBAAwC,EACxC,cAAY,KACX,OAAO,CAAC,GAAG,EAAE,CAsFf,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,EAAE,EACV,KAAK,EAAE,IAAI,EAAE,GACZ,YAAY,EAAE,CAShB;AAED,eAAO,MAAM,oBAAoB,GAC/B,eAAe,YAAY,EAAE,EAC7B,QAAQ,eAAe,EACvB,cAAc,oBAAoB,KACjC,OAAO,CAAC,GAAG,EAAE,CAoBf,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"classification.d.ts","sourceRoot":"","sources":["../../src/vaults/classification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEzE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,UAAU,CAAA;AACvD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAA;AAEhD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAUD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,aAEnC,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,aAkF7B,CAAA;AAKF,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,GAAG,SAAS,KAAG,OAS/D,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,GAAG,WAAW,GAAG,KAAK,CAAA;IAC7C,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,kBAAkB,KACxB,mBAUF,CAAA;AAoBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,kBAAkB,EACxB,SAAS,MAAM,GAAG,MAAM,EACxB,YAAW,gBAAqB,KAC/B,IAmEF,CAAA"}
1
+ {"version":3,"file":"classification.d.ts","sourceRoot":"","sources":["../../src/vaults/classification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEzE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,UAAU,CAAA;AACvD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAA;AAEhD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAUD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,aAEnC,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,aAkF7B,CAAA;AAKF,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,GAAG,SAAS,KAAG,OAS/D,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,GAAG,WAAW,GAAG,KAAK,CAAA;IAC7C,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,kBAAkB,KACxB,mBAUF,CAAA;AAoBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,kBAAkB,EACxB,SAAS,MAAM,GAAG,MAAM,EACxB,YAAW,gBAAqB,KAC/B,IAoEF,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { GenericTokenList } from '../../types';
2
+ import { EulerEarnVaults } from './types';
3
+ /**
4
+ * True when the Goldsky subgraph at `subgraphUrl` lags chain head by more
5
+ * than `MAX_LAG_SECONDS`. Returns `false` when staleness can't be determined
6
+ * (RPC/meta unavailable) so a transient hiccup never needlessly abandons the
7
+ * richer subgraph source — the data-fetch error path covers hard failures.
8
+ */
9
+ export declare function isEulerEarnSubgraphStale(chainId: string, subgraphUrl: string): Promise<boolean>;
10
+ /**
11
+ * Fetches all Euler Earn vaults for a chain from the Euler Data API.
12
+ * Returns `undefined` when the list request fails (so the caller can fall
13
+ * back to the subgraph), or a (possibly empty) map otherwise.
14
+ */
15
+ export declare function fetchEulerEarnVaultsFromApi(chainId: string, prices?: {
16
+ [asset: string]: number;
17
+ }, tokenList?: GenericTokenList): Promise<EulerEarnVaults | undefined>;
18
+ //# sourceMappingURL=fetchFromApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchFromApi.d.ts","sourceRoot":"","sources":["../../../src/vaults/euler-earn/fetchFromApi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,OAAO,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAA;AAwDzD;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAiJD;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,MAAM,GAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,SAAS,GAAE,gBAAqB,GAC/B,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAqBtC"}
@@ -2,6 +2,8 @@ import { GenericTokenList } from '../../types';
2
2
  import { EulerEarnVaults } from './types';
3
3
  /** True when the chain has an Euler Earn Goldsky subgraph configured. */
4
4
  export declare const hasEulerEarnVaultSubgraph: (chainId: string) => boolean;
5
+ /** Goldsky subgraph URL for a chain, or undefined when none is configured. */
6
+ export declare const getEulerEarnSubgraphUrl: (chainId: string) => string | undefined;
5
7
  /**
6
8
  * Fetches Euler Earn vaults from the Goldsky subgraph for chains
7
9
  * configured in `EULER_EARN_SUBGRAPH_URLS`.
@@ -1 +1 @@
1
- {"version":3,"file":"fetchFromSubgraph.d.ts","sourceRoot":"","sources":["../../../src/vaults/euler-earn/fetchFromSubgraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,OAAO,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAA;AA2BzD,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,KAAG,OACvB,CAAA;AA4YrC;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gCAAgC,CACpD,OAAO,EAAE,MAAM,EACf,MAAM,GAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,SAAS,GAAE,gBAAqB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAqB1B"}
1
+ {"version":3,"file":"fetchFromSubgraph.d.ts","sourceRoot":"","sources":["../../../src/vaults/euler-earn/fetchFromSubgraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,OAAO,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAA;AA2BzD,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,KAAG,OACvB,CAAA;AAErC,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,KACd,MAAM,GAAG,SAA8C,CAAA;AA4Y1D;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gCAAgC,CACpD,OAAO,EAAE,MAAM,EACf,MAAM,GAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,SAAS,GAAE,gBAAqB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAqB1B"}
@@ -3,20 +3,22 @@ import { EulerEarnVaults } from './types';
3
3
  /**
4
4
  * One-shot fetcher for all Euler Earn vaults on a chain.
5
5
  *
6
- * Currently sourced exclusively from Goldsky subgraphs (Euler does not
7
- * expose a public REST API for earn vaults the way Morpho does). Returns
8
- * `{}` when the chain has no subgraph entry configuredsame fallback
9
- * shape as the other vault fetchers in this directory.
6
+ * Source strategy Goldsky primary, Euler Data API fallback:
7
+ * - When a chain has a Goldsky subgraph, use it *unless* it lags chain head
8
+ * (e.g. the BSC subgraph ran ~7 weeks behind) or errorsthen fall back
9
+ * to the Euler Data API, which reads live on-chain figures. The richer
10
+ * subgraph result is kept as a last resort if the API is also unavailable.
11
+ * - Chains with no subgraph go straight to the API.
10
12
  *
11
- * Unlike `fetchFluidFTokens` / `fetchGearboxV3Pools`, no multicall
12
- * executor is needed the source is HTTP GraphQL.
13
+ * The subgraph fetch and the staleness probe run concurrently, so the common
14
+ * (healthy) path pays no extra latency. See [[euler-v3-data-api]].
13
15
  *
14
16
  * @param chainId target chain
15
17
  * @param prices optional price map keyed by oracle key / underlying
16
18
  * @param tokenList optional token list for hydrating `asset` metadata
17
19
  *
18
- * @returns `EulerEarnVaults` — map keyed by lowercased vault address, or
19
- * an empty object when the chain has no Euler Earn subgraph.
20
+ * @returns `EulerEarnVaults` keyed by lowercased vault address — `{}` when
21
+ * the chain has neither a usable subgraph nor API data.
20
22
  */
21
23
  export declare const fetchEulerEarnVaults: (chainId: string, prices?: {
22
24
  [asset: string]: number;
@@ -1 +1 @@
1
- {"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../src/vaults/euler-earn/fetchPublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,KAC/B,OAAO,CAAC,eAAe,CAEzB,CAAA"}
1
+ {"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../src/vaults/euler-earn/fetchPublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAS9C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAKzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,KAC/B,OAAO,CAAC,eAAe,CA6BzB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { fetchEulerEarnVaults } from './fetchPublic';
2
- export { fetchEulerEarnVaultsFromSubgraph, hasEulerEarnVaultSubgraph, } from './fetchFromSubgraph';
2
+ export { fetchEulerEarnVaultsFromSubgraph, hasEulerEarnVaultSubgraph, getEulerEarnSubgraphUrl, } from './fetchFromSubgraph';
3
+ export { fetchEulerEarnVaultsFromApi, isEulerEarnSubgraphStale, } from './fetchFromApi';
3
4
  export type { EulerEarnVault, EulerEarnVaults } from './types';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vaults/euler-earn/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EACL,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vaults/euler-earn/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA"}
@@ -8,12 +8,13 @@ import type { EulerEarnVaults } from './euler-earn/types';
8
8
  import type { LstShareTokens } from './lst';
9
9
  import type { SavingsVaults } from './savings';
10
10
  import type { LagoonVaults } from './lagoon';
11
+ import type { UpshiftVaults } from './upshift';
11
12
  import type { YearnVaults } from './yearn';
12
13
  import type { HypercoreVaults } from './hypercore';
13
14
  import type { GmxVaults, GmxExecutionFees } from './gmx';
14
15
  import { type VaultLookupEntry } from './lookup';
15
16
  /** Supported ERC-4626 vault providers. */
16
- export type VaultProvider = 'fluid' | 'gearbox' | 'morpho' | 'lista' | 'silo' | 'euler-earn' | 'lst' | 'savings' | 'lagoon' | 'yearn' | 'hypercore' | 'gmx';
17
+ export type VaultProvider = 'fluid' | 'gearbox' | 'morpho' | 'lista' | 'silo' | 'euler-earn' | 'lst' | 'savings' | 'lagoon' | 'upshift' | 'yearn' | 'hypercore' | 'gmx';
17
18
  /** Chain under which the Hyperliquid HyperCore (L1) vaults are surfaced.
18
19
  * HyperCore is not an EVM chain; we attribute its vaults to the
19
20
  * Hyperliquid umbrella chain (HyperEVM, 999) so a single
@@ -38,6 +39,10 @@ export interface VaultPublicDataAll {
38
39
  lst?: LstShareTokens;
39
40
  savings?: SavingsVaults;
40
41
  lagoon?: LagoonVaults;
42
+ /** Upshift curator-run ERC-4626-style yield vaults, sourced from the
43
+ * Upshift public REST listing. Keyed by lowercased receipt-token
44
+ * address. */
45
+ upshift?: UpshiftVaults;
41
46
  /** Yearn V3 vaults (VaultV3 + TokenizedStrategy ERC-4626). Discovered
42
47
  * via the yDaemon API; keyed by lowercased vault address. */
43
48
  yearn?: YearnVaults;
@@ -1 +1 @@
1
- {"version":3,"file":"fetchVaultsAll.d.ts","sourceRoot":"","sources":["../../src/vaults/fetchVaultsAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAenD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAUlE,0CAA0C;AAC1C,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,SAAS,GACT,QAAQ,GACR,OAAO,GACP,MAAM,GACN,YAAY,GACZ,KAAK,GACL,SAAS,GACT,QAAQ,GACR,OAAO,GACP,WAAW,GACX,KAAK,CAAA;AAET;;;wDAGwD;AACxD,eAAO,MAAM,wBAAwB,QAAQ,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;2EAEuE;IACvE,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;kEAC8D;IAC9D,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;;oCAEgC;IAChC,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B;;iEAE6D;IAC7D,GAAG,CAAC,EAAE,SAAS,CAAA;IACf;0EACsE;IACtE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAA;IACxB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,WAAW,aAAa,EAAE,EAC1B,gBAAgB,sBAAsB,EACtC,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,EAChC,UAAU,4BAA4B,KACrC,OAAO,CAAC,qBAAqB,CAmO/B,CAAA"}
1
+ {"version":3,"file":"fetchVaultsAll.d.ts","sourceRoot":"","sources":["../../src/vaults/fetchVaultsAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAgBnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAUlE,0CAA0C;AAC1C,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,SAAS,GACT,QAAQ,GACR,OAAO,GACP,MAAM,GACN,YAAY,GACZ,KAAK,GACL,SAAS,GACT,QAAQ,GACR,SAAS,GACT,OAAO,GACP,WAAW,GACX,KAAK,CAAA;AAET;;;wDAGwD;AACxD,eAAO,MAAM,wBAAwB,QAAQ,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;2EAEuE;IACvE,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;mBAEe;IACf,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB;kEAC8D;IAC9D,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;;oCAEgC;IAChC,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B;;iEAE6D;IAC7D,GAAG,CAAC,EAAE,SAAS,CAAA;IACf;0EACsE;IACtE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACjC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAA;IACxB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,EACf,WAAW,aAAa,EAAE,EAC1B,gBAAgB,sBAAsB,EACtC,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,EAChC,UAAU,4BAA4B,KACrC,OAAO,CAAC,qBAAqB,CAqP/B,CAAA"}
@@ -8,6 +8,7 @@ export * from './euler-earn';
8
8
  export * from './lst';
9
9
  export * from './savings';
10
10
  export * from './lagoon';
11
+ export * from './upshift';
11
12
  export * from './yearn';
12
13
  export * from './hypercore';
13
14
  export * from './gmx';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vaults/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EACL,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,GAClC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vaults/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EACL,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,GAClC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,kBAAkB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/vaults/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAElE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,QAAQ,EAAE,aAAa,CAAA;IACvB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;+DAI2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAA;IACnB;;;yBAGqB;IACrB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;sEAEkE;IAClE,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;oDACgD;IAChD,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;;;yBAIqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;2EACuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,kBAAkB,GACvB,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAmE/B"}
1
+ {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/vaults/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAElE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,QAAQ,EAAE,aAAa,CAAA;IACvB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;+DAI2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAA;IACnB;;;yBAGqB;IACrB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;sEAEkE;IAClE,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;oDACgD;IAChD,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;;;yBAIqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;2EACuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,kBAAkB,GACvB,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAoE/B"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Upshift public vault listing.
3
+ *
4
+ * A single un-paginated REST endpoint returns every Upshift vault across
5
+ * all chains (EVM and non-EVM) in one response. We fetch it once and
6
+ * filter to the requested EVM chain in `fetchPublic`. Pricing and yield
7
+ * come straight from the API, so the public-data fetch needs no multicall
8
+ * and no archival RPC.
9
+ *
10
+ * Endpoint (no auth):
11
+ * https://app.upshift.finance/api/proxy/vaults
12
+ */
13
+ export declare const UPSHIFT_VAULTS_URL = "https://app.upshift.finance/api/proxy/vaults";
14
+ /**
15
+ * EVM chains where Upshift has visible vaults. Numeric chain ids as
16
+ * strings. The endpoint is global (returns every chain regardless), so
17
+ * this set only short-circuits the round-trip on chains Upshift doesn't
18
+ * cover. Extend as Upshift deploys to more chains — the parser is
19
+ * chain-agnostic.
20
+ */
21
+ export declare const UPSHIFT_CHAIN_IDS: Set<string>;
22
+ export declare const hasUpshiftVaults: (chainId: string) => boolean;
23
+ /** A `depositAssets[]` entry — an accepted underlying token. */
24
+ export interface UpshiftApiAsset {
25
+ address: string | null;
26
+ symbol: string | null;
27
+ decimals: number | null;
28
+ }
29
+ /** Shape of a single `data[]` entry in the API response. */
30
+ export interface UpshiftApiVault {
31
+ chainId: number | null;
32
+ address: string | null;
33
+ name: string | null;
34
+ decimals: number | null;
35
+ status: string | null;
36
+ isVisible: boolean | null;
37
+ isDepositPaused: boolean | null;
38
+ isWithdrawalPaused: boolean | null;
39
+ apy: {
40
+ apy: number | null;
41
+ campaignApy: number | null;
42
+ pointsApy: number | null;
43
+ underlyingApy: number | null;
44
+ } | null;
45
+ depositAssets: (UpshiftApiAsset | null)[] | null;
46
+ totalAssets: {
47
+ normalized: string | null;
48
+ raw: string | null;
49
+ } | null;
50
+ totalSupply: {
51
+ normalized: string | null;
52
+ raw: string | null;
53
+ } | null;
54
+ receipt: {
55
+ symbol: string | null;
56
+ address: string | null;
57
+ decimals: number | null;
58
+ } | null;
59
+ latest_reported_tvl: number | null;
60
+ }
61
+ /**
62
+ * Fetch the global Upshift vault listing. Returns the raw `data[]` array;
63
+ * chain filtering and normalization to `UpshiftVault` happen in
64
+ * `fetchPublic`.
65
+ */
66
+ export declare function fetchUpshiftApiVaults(): Promise<UpshiftApiVault[]>;
67
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/vaults/upshift/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,kBAAkB,iDAAiD,CAAA;AAEhF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,aAU5B,CAAA;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,OACX,CAAA;AAExC,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,OAAO,GAAG,IAAI,CAAA;IACzB,eAAe,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/B,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAA;IAClC,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;QAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;QACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAC7B,GAAG,IAAI,CAAA;IACR,aAAa,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;IAChD,WAAW,EAAE;QAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;IACrE,WAAW,EAAE;QAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;IACrE,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACxB,GAAG,IAAI,CAAA;IACR,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAWxE"}
@@ -0,0 +1,20 @@
1
+ import { GenericTokenList } from '../../types';
2
+ import { UpshiftVaults } from './types';
3
+ /**
4
+ * One-shot fetcher for all visible Upshift vaults on a chain.
5
+ *
6
+ * HTTP-only (Upshift public REST listing) — no multicall executor needed,
7
+ * mirroring the Lagoon fetcher. The endpoint is global; we filter to the
8
+ * requested chain. Returns an empty map for chains without an Upshift
9
+ * deployment.
10
+ *
11
+ * @param chainId target chain
12
+ * @param prices optional price map keyed by oracle key / underlying
13
+ * @param tokenList optional token list for hydrating `asset` metadata
14
+ *
15
+ * @returns `UpshiftVaults` — map keyed by lowercased receipt-token address.
16
+ */
17
+ export declare const fetchUpshiftVaults: (chainId: string, prices?: {
18
+ [asset: string]: number;
19
+ }, tokenList?: GenericTokenList) => Promise<UpshiftVaults>;
20
+ //# sourceMappingURL=fetchPublic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../src/vaults/upshift/fetchPublic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAO9C,OAAO,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAA;AAwGrD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,EACf,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,KAC/B,OAAO,CAAC,aAAa,CAavB,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { fetchUpshiftVaults } from './fetchPublic';
2
+ export { UPSHIFT_VAULTS_URL, UPSHIFT_CHAIN_IDS, hasUpshiftVaults, fetchUpshiftApiVaults, type UpshiftApiVault, type UpshiftApiAsset, } from './api';
3
+ export type { UpshiftVault, UpshiftVaults } from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vaults/upshift/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,OAAO,CAAA;AACd,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,79 @@
1
+ import { GenericCurrency } from '../../types/general';
2
+ import type { VaultClassificationFields } from '../classification';
3
+ /**
4
+ * Parsed Upshift vault entry.
5
+ *
6
+ * Upshift vaults are curator-run ERC-4626-style yield vaults exposed via
7
+ * a single public REST listing (`https://app.upshift.finance/api/proxy/
8
+ * vaults`). The deposit contract (`vaultAddress`) and the receipt/share
9
+ * token a depositor actually holds (`address`) can differ on the newer
10
+ * `evm-2` vaults, so we key the vault by the **receipt** token — that's
11
+ * what shows up in a user's wallet and what the user-balance lookup
12
+ * resolves against.
13
+ *
14
+ * Mirrors the cross-provider load-bearing fields (`address`,
15
+ * `underlying`, `symbol`, `name`, `decimals`, `totalAssets`,
16
+ * `totalSupply`) so `buildVaultLookup` picks it up without branching.
17
+ * Share and underlying decimals can diverge, so `assetDecimals` is
18
+ * carried through for correct share→asset math.
19
+ */
20
+ export interface UpshiftVault extends VaultClassificationFields {
21
+ /** Receipt / share token address (held by depositors), lowercased. */
22
+ address: string;
23
+ /** Deposit (vault) contract address, lowercased. Equals `address` on
24
+ * older single-token vaults. */
25
+ vaultAddress: string;
26
+ /** Underlying ERC-20 address (first accepted deposit asset), lowercased. */
27
+ underlying: string;
28
+ /** Receipt-token symbol, e.g. `earnAUSD`. */
29
+ symbol: string;
30
+ /** Vault display name as returned by the API. */
31
+ name: string;
32
+ /** Receipt-token decimals. */
33
+ decimals: number;
34
+ /** Underlying asset decimals — may differ from `decimals`. */
35
+ assetDecimals: number;
36
+ /** Total underlying held by the vault, raw integer as string
37
+ * (asset-decimal scaled). */
38
+ totalAssets: string;
39
+ /** Total shares minted, raw integer as string (share-decimal scaled). */
40
+ totalSupply: string;
41
+ /** Derived `pricePerShare` — 1 share → X underlying, asset-decimal
42
+ * scaled (`totalAssets * 10**shareDecimals / totalSupply`). `'0'` for
43
+ * an empty vault. */
44
+ pricePerShare: string;
45
+ /** Base supply APY in percent (e.g. `10` = 10 %). From `apy.apy`. */
46
+ supplyRate: number;
47
+ /** Incentive / campaign APR in percent, when the API reports one
48
+ * (`apy.campaignApy`). Kept separate from the base rate. */
49
+ rewardsRate: number;
50
+ /** `supplyRate + rewardsRate` — total APR a depositor earns. */
51
+ depositRate: number;
52
+ /** All APY components reported by the API (percent), for transparency. */
53
+ apy: {
54
+ base: number | null;
55
+ campaign: number | null;
56
+ points: number | null;
57
+ underlying: number | null;
58
+ };
59
+ /** Whether deposits are currently paused. */
60
+ isDepositPaused: boolean;
61
+ /** Whether withdrawals are currently paused. */
62
+ isWithdrawalPaused: boolean;
63
+ /** Hydrated underlying metadata from the provided token list, if any. */
64
+ asset?: GenericCurrency;
65
+ /** USD price of one underlying unit, if prices were supplied. */
66
+ priceUsd?: number;
67
+ /** Human-formatted total assets (`totalAssets / 10**assetDecimals`). */
68
+ totalAssetsFormatted: number;
69
+ /** Human-formatted total assets in USD. */
70
+ totalAssetsUsd: number;
71
+ }
72
+ /**
73
+ * Full parsed payload — per-vault map keyed by lowercased receipt-token
74
+ * address (parity with the other vault providers).
75
+ */
76
+ export type UpshiftVaults = {
77
+ [vaultAddress: string]: UpshiftVault;
78
+ };
79
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vaults/upshift/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAa,SAAQ,yBAAyB;IAC7D,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAA;IACf;qCACiC;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAA;IAErB;kCAC8B;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAA;IACnB;;0BAEsB;IACtB,aAAa,EAAE,MAAM,CAAA;IAErB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAClB;iEAC6D;IAC7D,WAAW,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAA;IACnB,0EAA0E;IAC1E,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;QACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAC1B,CAAA;IAED,6CAA6C;IAC7C,eAAe,EAAE,OAAO,CAAA;IACxB,gDAAgD;IAChD,kBAAkB,EAAE,OAAO,CAAA;IAE3B,yEAAyE;IACzE,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wEAAwE;IACxE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAAA;CACrC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { YieldFetcher } from '../../types';
2
+ export declare const accountableFetcher: YieldFetcher;
3
+ //# sourceMappingURL=accountable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountable.d.ts","sourceRoot":"","sources":["../../../../src/yields/intrinsic/fetchers/accountable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAgD1C,eAAO,MAAM,kBAAkB,EAAE,YA0ChC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { YieldFetcher } from '../../types';
2
+ export declare const monadLstFetcher: YieldFetcher;
3
+ //# sourceMappingURL=monadLst.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monadLst.d.ts","sourceRoot":"","sources":["../../../../src/yields/intrinsic/fetchers/monadLst.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAoB1C,eAAO,MAAM,eAAe,EAAE,YAY7B,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { YieldFetcher } from '../../types';
2
+ export declare const upshiftFetcher: YieldFetcher;
3
+ //# sourceMappingURL=upshift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upshift.d.ts","sourceRoot":"","sources":["../../../../src/yields/intrinsic/fetchers/upshift.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAY1C,eAAO,MAAM,cAAc,EAAE,YAW5B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/yields/intrinsic/index.ts"],"names":[],"mappings":"AA2DA,8DAA8D;AAC9D,wBAAsB,oBAAoB,IAAI,OAAO,CAAC;IACpD,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACpC,CAAC,CAsFD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/yields/intrinsic/index.ts"],"names":[],"mappings":"AA+DA,8DAA8D;AAC9D,wBAAsB,oBAAoB,IAAI,OAAO,CAAC;IACpD,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACpC,CAAC,CA2FD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1delta/margin-fetcher",
3
- "version": "0.0.284",
3
+ "version": "0.0.286",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "files": [
@@ -23,10 +23,11 @@
23
23
  "async-retry": "^1.3.3",
24
24
  "lodash": "^4.17.23",
25
25
  "@1delta/abis": "0.0.20",
26
+ "@1delta/calldata-sdk": "0.0.153",
27
+ "@1delta/dex-registry": "0.0.101",
28
+ "@1delta/data-sdk": "0.0.28",
26
29
  "@1delta/lender-registry": "0.0.32",
27
30
  "@1delta/providers": "0.0.59",
28
- "@1delta/calldata-sdk": "0.0.152",
29
- "@1delta/dex-registry": "0.0.101",
30
31
  "@1delta/proxy-fetch": "0.0.1"
31
32
  },
32
33
  "devDependencies": {