@1delta/margin-fetcher 0.0.276 → 0.0.278

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.
@@ -23,17 +23,24 @@ export interface VaultClassification {
23
23
  * (and `VaultLookupEntry`) and stamped by `stampVaultClassification`; absent
24
24
  * until then.
25
25
  *
26
- * `sharePrice` is the **uniform** share price — `convertToAssets`
26
+ * Uniform **share price**the provider's `convertToAssets`
27
27
  * (fluid/savings/lst/morpho/lista/silo/gearbox/euler-earn) or `pricePerShare`
28
- * (lagoon/yearn), whichever the provider exposes so consumers read one field
29
- * instead of `convertToAssets ?? pricePerShare`. Raw `convertToAssets(10^share
30
- * Decimals)`; `'0'` for an empty vault; absent on hypercore/gmx (no share/asset
31
- * ratio).
28
+ * (lagoon/yearn), so consumers read one set of fields instead of
29
+ * `convertToAssets ?? pricePerShare`:
30
+ * - `sharePriceRaw` raw `convertToAssets(10^shareDecimals)` (asset-scaled
31
+ * integer string). `'0'` for an empty vault.
32
+ * - `sharePrice` — that value formatted to underlying units (1 share → X
33
+ * underlying, a JS number).
34
+ * - `sharePriceUSD` — `sharePrice * priceUsd` (USD value of 1 share); absent
35
+ * when no underlying price was supplied/resolved.
36
+ * All absent on hypercore/gmx (no share/asset ratio).
32
37
  */
33
38
  export interface VaultClassificationFields {
34
39
  yieldProfile?: YieldProfile;
35
40
  denomination?: Denomination;
36
- sharePrice?: string;
41
+ sharePriceRaw?: string;
42
+ sharePrice?: number;
43
+ sharePriceUSD?: number;
37
44
  /**
38
45
  * The **share token's own** token-list entry (hydrated from the provided
39
46
  * `tokenList` by `stampVaultClassification`). Unlike `asset` — which is the
@@ -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;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;CAC7B;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,CAAA;IACrC,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;AAYD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,kBAAkB,EACxB,SAAS,MAAM,GAAG,MAAM,EACxB,YAAW,gBAAqB,KAC/B,IAgCF,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;CAC7B;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,CAAA;IACrC,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;AAgBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,kBAAkB,EACxB,SAAS,MAAM,GAAG,MAAM,EACxB,YAAW,gBAAqB,KAC/B,IA8CF,CAAA"}
@@ -48,11 +48,14 @@ export interface VaultLookupEntry {
48
48
  /** Underlying denomination — `stable` (stablecoin underlying) vs
49
49
  * `volatile`. Orthogonal to `yieldProfile`. */
50
50
  denomination?: Denomination;
51
- /** Uniform share price raw `convertToAssets(10^shareDecimals)` (1 share →
52
- * underlying). Folded from the provider's `convertToAssets`/`pricePerShare`
53
- * by `stampVaultClassification`. `'0'` for empty vaults; absent on
51
+ /** Uniform share price, folded from the provider's `convertToAssets`/
52
+ * `pricePerShare` by `stampVaultClassification`. `sharePriceRaw` is the
53
+ * asset-scaled raw integer (`'0'` for empty); `sharePrice` is it formatted
54
+ * to underlying units; `sharePriceUSD` is `sharePrice * priceUsd`. Absent on
54
55
  * hypercore/gmx. */
55
- sharePrice?: string;
56
+ sharePriceRaw?: string;
57
+ sharePrice?: number;
58
+ sharePriceUSD?: number;
56
59
  }
57
60
  /**
58
61
  * Flattens the per-provider maps from `VaultPublicDataAll` into a
@@ -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;;;yBAGqB;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,kBAAkB,GACvB,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CA6D/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;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,kBAAkB,GACvB,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAiE/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../src/vaults/lst/fetchPublic.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAUtE,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,SAAS,CAAA;AA4C5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,gBAAgB,sBAAsB,EACtC,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,KAC/B,OAAO,CAAC,cAAc,CA8MxB,CAAA"}
1
+ {"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../src/vaults/lst/fetchPublic.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAUtE,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,SAAS,CAAA;AA6C5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,gBAAgB,sBAAsB,EACtC,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,KAC/B,OAAO,CAAC,cAAc,CA8NxB,CAAA"}
@@ -5,7 +5,11 @@ import { type LstReader } from './shared';
5
5
  * non-zero state even when no rate getter is available on-chain.
6
6
  *
7
7
  * Used when an LST publishes its exchange rate exclusively off-chain
8
- * and the rest of the on-chain surface is the bare ERC-20.
8
+ * and the rest of the on-chain surface is the bare ERC-20. The value
9
+ * rate is a flat 1:1 (`exchangeRate = 1e18`), but `totalAssets` is in
10
+ * the *underlying* asset's decimals — so when share ≠ underlying
11
+ * decimals (e.g. 18-dec SolvBTC over 8-dec WBTC) the share-denominated
12
+ * supply is rescaled to the underlying.
9
13
  */
10
14
  export declare const readerOffChain: (entry: LstRegistryEntry) => LstReader;
11
15
  //# sourceMappingURL=offChain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"offChain.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lst/readers/offChain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,UAAU,CAAA;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,gBAAgB,KAAG,SAQvD,CAAA"}
1
+ {"version":3,"file":"offChain.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lst/readers/offChain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,UAAU,CAAA;AAE7E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,gBAAgB,KAAG,SAgBxD,CAAA"}
@@ -12,6 +12,12 @@
12
12
  * the registry today has 18 decimals; if that ever changes, swap to
13
13
  * `10n ** BigInt(entry.decimals)` per call site. */
14
14
  export declare const ONE_E18: bigint;
15
+ /** Rescale a raw integer amount from `fromDec` to `toDec` decimals.
16
+ * Used by readers whose `totalAssets` is naturally share-denominated
17
+ * (computed from `totalSupply`) but must be reported in the *underlying*
18
+ * asset's decimals when share ≠ underlying (e.g. 18-dec SolvBTC over
19
+ * 8-dec WBTC). A no-op when the two coincide. */
20
+ export declare const rescaleDecimals: (v: bigint, fromDec: number, toDec: number) => bigint;
15
21
  /** Canonical Multicall3 address (same on ~all EVM chains). `getEthBalance`
16
22
  * lets us read a contract's *native* balance inside the same multicall —
17
23
  * used for instant-exit buffers held as native coin (e.g. EtherFi's
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lst/readers/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;qDAGqD;AACrD,eAAO,MAAM,OAAO,QAAa,CAAA;AAEjC;;;;;oCAKoC;AACpC,eAAO,MAAM,kBAAkB,+CAA+C,CAAA;AAE9E,kEAAkE;AAClE,eAAO,MAAM,oBAAoB;;;;;;;;;;;EAQvB,CAAA;AAEV;;2BAE2B;AAC3B,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,OAAO,EAAE,CAAA;IAC1B;;;;4DAIwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAA;IACpB;iCAC6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB;;0DAEsD;IAEtD,IAAI,EAAE,GAAG,EAAE,CAAA;IACX;;sEAEkE;IAClE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,eAAe,GAAG,SAAS,CAAA;CACzD;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,MAAM,GAAG,SAgB9C,CAAA"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lst/readers/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;qDAGqD;AACrD,eAAO,MAAM,OAAO,QAAa,CAAA;AAEjC;;;;kDAIkD;AAClD,eAAO,MAAM,eAAe,GAC1B,GAAG,MAAM,EACT,SAAS,MAAM,EACf,OAAO,MAAM,KACZ,MAGqC,CAAA;AAExC;;;;;oCAKoC;AACpC,eAAO,MAAM,kBAAkB,+CAA+C,CAAA;AAE9E,kEAAkE;AAClE,eAAO,MAAM,oBAAoB;;;;;;;;;;;EAQvB,CAAA;AAEV;;2BAE2B;AAC3B,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,OAAO,EAAE,CAAA;IAC1B;;;;4DAIwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAA;IACpB;iCAC6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB;;0DAEsD;IAEtD,IAAI,EAAE,GAAG,EAAE,CAAA;IACX;;sEAEkE;IAClE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,eAAe,GAAG,SAAS,CAAA;CACzD;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,MAAM,GAAG,SAgB9C,CAAA"}
@@ -9,11 +9,15 @@ import { type LstReader } from './shared';
9
9
  * 1. `vault.totalSupply()`
10
10
  * 2. `Accountant.getRate()` — assets-per-share, base-asset decimals.
11
11
  *
12
- * The rate is normalised to the 1e18 scale the rest of the pipeline
13
- * expects via `10 ** (18 - entry.decimals)` (rate decimals == the
14
- * token's decimals for these single-base-asset BTC vaults). Requires
12
+ * The rate is normalised to the 1e18 value-ratio scale the rest of the
13
+ * pipeline expects via `10 ** (18 - underlyingDecimals)` (the Accountant
14
+ * denominates the rate in the *underlying* asset's decimals). Requires
15
15
  * `readerExtras.vedaAccountant`; without it the reader degrades to a
16
16
  * bare `totalSupply()` at a 1:1 rate so the entry still surfaces.
17
+ *
18
+ * `totalAssets` is reported in the underlying asset's decimals, so the
19
+ * share-denominated `totalSupply * rate` product is rescaled to the
20
+ * underlying when share ≠ underlying decimals.
17
21
  */
18
22
  export declare const readerVedaAccountant: (entry: LstRegistryEntry) => LstReader;
19
23
  //# sourceMappingURL=veda.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"veda.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lst/readers/veda.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,UAAU,CAAA;AAE5D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,gBAAgB,KAAG,SAgC9D,CAAA"}
1
+ {"version":3,"file":"veda.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lst/readers/veda.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,UAAU,CAAA;AAE7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,gBAAgB,KAAG,SA0C9D,CAAA"}
@@ -17,8 +17,17 @@ export interface LstRegistryEntry {
17
17
  /** Share-token contract address, lowercased. */
18
18
  address: string;
19
19
  /** Underlying asset address, lowercased — `zeroAddress` for native
20
- * ETH, an ERC-20 address otherwise (e.g. wstETH for pufETH). */
20
+ * ETH, an ERC-20 address otherwise (e.g. wstETH for pufETH). This is
21
+ * the **pay asset** (deposit input / what the share token wraps), so it
22
+ * drives deposit routing — not just pricing. */
21
23
  underlying: string;
24
+ /** Price-only reference asset, lowercased. When the `underlying` (pay
25
+ * asset) has no USD price of its own, this points pricing at an
26
+ * economically-equivalent, *priced* token — used **solely** for
27
+ * `priceUsd` (and the USD fields derived from it), never for deposits.
28
+ * e.g. the BGT wrappers pay in BGT (unpriced) but are 1:1 redeemable to
29
+ * BERA, so `priceUnderlying` = WBERA. Omit when `underlying` is priced. */
30
+ priceUnderlying?: string;
22
31
  /** Share-token symbol. */
23
32
  symbol: string;
24
33
  /** Display name — `${brand} ${symbol}` is composed in the parser if
@@ -26,6 +35,13 @@ export interface LstRegistryEntry {
26
35
  brand: string;
27
36
  /** Share decimals. */
28
37
  decimals: number;
38
+ /** Underlying asset decimals. Defaults to `decimals` when omitted — set
39
+ * it only when the share token and its underlying differ, e.g. 18-dec
40
+ * SolvBTC over 8-dec WBTC, or 8-dec bridged pumpBTC over 18-dec
41
+ * SolvBTC.CORE. Load-bearing for share→asset conversion
42
+ * (`convertToAssets`/`convertToShares`, `totalAssets` scaling, and the
43
+ * cross-provider `sharePrice`). Mirrors `SavingsRegistryEntry.underlyingDecimals`. */
44
+ underlyingDecimals?: number;
29
45
  /** Reader strategy — drives the multicall payload. */
30
46
  reader: LstReaderKind;
31
47
  /** Whether this is a real ERC-4626 (informational; the reader still
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/vaults/lst/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA4CtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD;0EAC0E;AAC1E,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,sBAAsB,GACtB,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,WAAW,GACX,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,UAAU,GACV,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,YAAY,GACZ,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,gBAAgB,GAChB,UAAU,CAAA;AAEd;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf;qEACiE;IACjE,UAAU,EAAE,MAAM,CAAA;IAClB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd;2BACuB;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,sDAAsD;IACtD,MAAM,EAAE,aAAa,CAAA;IACrB;mCAC+B;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAA;IACnB,+DAA+D;IAC/D,UAAU,EAAE,OAAO,CAAA;IACnB,iDAAiD;IACjD,kBAAkB,EAAE,OAAO,CAAA;IAC3B,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wBAAwB;IACxB,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAClC,4BAA4B;IAC5B,cAAc,EAAE,iBAAiB,CAAA;IACjC,kEAAkE;IAClE,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC;;mBAEe;IACf,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;iCAE6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;oCACgC;IAChC,YAAY,CAAC,EAAE;QACb,sFAAsF;QACtF,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,gFAAgF;QAChF,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB;2DACmD;QACnD,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B;2DACmD;QACnD,uBAAuB,CAAC,EAAE,MAAM,CAAA;QAChC,gFAAgF;QAChF,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB;mEAC2D;QAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,+DAA+D;QAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAA;QAC7B;;sCAE8B;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B;;gEAEwD;QACxD,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB;;uCAE+B;QAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAA;QAC7B;;+DAEuD;QACvD,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB;;;iEAGyD;QACzD,wBAAwB,CAAC,EAAE,MAAM,CAAA;QACjC;0CACkC;QAClC,uBAAuB,CAAC,EAAE,MAAM,CAAA;QAChC;;;+EAGuE;QACvE,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B;;;4DAGoD;QACpD,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB;;;8DAGsD;QACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB;;;iEAGyD;QACzD,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAC3B,CAAA;CACF;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAorCjE,CAAA;AAED,0EAA0E;AAC1E,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,gBAAgB,EACpC,CAAA"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/vaults/lst/registry.ts"],"names":[],"mappings":"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"}
@@ -44,21 +44,31 @@ export interface LstShareToken extends VaultClassificationFields {
44
44
  /** Alias for `brand` to match `curatorName` on the other providers'
45
45
  * vault types — keeps cross-provider UI code uniform. */
46
46
  curatorName: string;
47
- /** Share decimals (always 18 in practice for the LSTs covered here). */
47
+ /** Share decimals. */
48
48
  decimals: number;
49
- /** Total underlying held, raw integer (wei-like) as string.
50
- * Computed as `totalSupply * exchangeRate / 10**decimals` when the
51
- * share token does not expose a direct `totalAssets()`. */
49
+ /** Underlying asset decimals. Equals `decimals` for the vast majority
50
+ * of LSTs (share and underlying share a decimal count); diverges for
51
+ * e.g. 18-dec SolvBTC over 8-dec WBTC, or 8-dec bridged pumpBTC over
52
+ * 18-dec SolvBTC.CORE. Load-bearing for share→asset formatting and the
53
+ * cross-provider `sharePrice` (parity with Lagoon/Yearn). */
54
+ assetDecimals: number;
55
+ /** Total underlying held, raw integer in **underlying** units as string.
56
+ * Computed as `totalSupply * exchangeRate / 1e18` (rescaled to the
57
+ * underlying decimals) when the share token does not expose a direct
58
+ * `totalAssets()`. */
52
59
  totalAssets: string;
53
- /** Total shares minted, raw integer as string. */
60
+ /** Total shares minted, raw integer in **share** units as string. */
54
61
  totalSupply: string;
55
- /** Raw `convertToShares(10**decimals)` — 1 underlying → X shares. */
62
+ /** Raw `convertToShares(10**assetDecimals)` — 1 underlying → X shares,
63
+ * in raw share units. */
56
64
  convertToShares: string;
57
- /** Raw `convertToAssets(10**decimals)` — 1 share → X underlying. */
65
+ /** Raw `convertToAssets(10**decimals)` — 1 share → X underlying, in raw
66
+ * underlying units. */
58
67
  convertToAssets: string;
59
- /** 1e18-scaled exchange rate: 1 share X underlying. The canonical
60
- * pricing primitive — `convertToAssets` is derived from this when
61
- * `decimals != 18`. */
68
+ /** 1e18-scaled exchange rate: value of 1 whole share in whole underlying
69
+ * (decimal-agnostic). The canonical pricing primitive —
70
+ * `convertToAssets`/`convertToShares` are derived from it together with
71
+ * the share/underlying decimals. */
62
72
  exchangeRate: string;
63
73
  /** Supply APR in percent (e.g. `3.12` = 3.12 %). Sourced from the
64
74
  * matching intrinsic-yield fetcher. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vaults/lst/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAElE;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,gBAAgB,GAChB,mBAAmB,GACnB,eAAe,GACf,WAAW,GACX,UAAU,CAAA;AAEd;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,aAAc,SAAQ,yBAAyB;IAC9D,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf;;gCAE4B;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd;4CACwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ;8CAC0C;IAC1C,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAA;IACb;8DAC0D;IAC1D,WAAW,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAA;IAEhB;;gEAE4D;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAA;IACvB,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAA;IACvB;;4BAEwB;IACxB,YAAY,EAAE,MAAM,CAAA;IAEpB;4CACwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB;oEACgE;IAChE,WAAW,EAAE,MAAM,CAAA;IACnB;iBACa;IACb,WAAW,EAAE,MAAM,CAAA;IAEnB;;mCAE+B;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB;kEAC8D;IAC9D,UAAU,EAAE,OAAO,CAAA;IACnB;2DACuD;IACvD,UAAU,EAAE,OAAO,CAAA;IACnB,6DAA6D;IAC7D,kBAAkB,EAAE,OAAO,CAAA;IAE3B;kCAC8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;8EAE0E;IAC1E,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAClC;;;;;;8DAM0D;IAC1D,cAAc,EAAE,gBAAgB,EAAE,CAAA;IAElC,sDAAsD;IACtD,cAAc,EAAE,iBAAiB,CAAA;IACjC;;2EAEuE;IACvE,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAElC,oEAAoE;IACpE,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mEAAmE;IACnE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;;;;;kFAQ8E;IAC9E,SAAS,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAAA;CACtC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vaults/lst/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAElE;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,gBAAgB,GAChB,mBAAmB,GACnB,eAAe,GACf,WAAW,GACX,UAAU,CAAA;AAEd;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,aAAc,SAAQ,yBAAyB;IAC9D,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf;;gCAE4B;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd;4CACwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ;8CAC0C;IAC1C,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAA;IACb;8DAC0D;IAC1D,WAAW,EAAE,MAAM,CAAA;IACnB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;kEAI8D;IAC9D,aAAa,EAAE,MAAM,CAAA;IAErB;;;2BAGuB;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAA;IACnB;8BAC0B;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB;4BACwB;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB;;;yCAGqC;IACrC,YAAY,EAAE,MAAM,CAAA;IAEpB;4CACwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB;oEACgE;IAChE,WAAW,EAAE,MAAM,CAAA;IACnB;iBACa;IACb,WAAW,EAAE,MAAM,CAAA;IAEnB;;mCAE+B;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB;kEAC8D;IAC9D,UAAU,EAAE,OAAO,CAAA;IACnB;2DACuD;IACvD,UAAU,EAAE,OAAO,CAAA;IACnB,6DAA6D;IAC7D,kBAAkB,EAAE,OAAO,CAAA;IAE3B;kCAC8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;8EAE0E;IAC1E,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAClC;;;;;;8DAM0D;IAC1D,cAAc,EAAE,gBAAgB,EAAE,CAAA;IAElC,sDAAsD;IACtD,cAAc,EAAE,iBAAiB,CAAA;IACjC;;2EAEuE;IACvE,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAElC,oEAAoE;IACpE,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mEAAmE;IACnE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;;;;;kFAQ8E;IAC9E,SAAS,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAAA;CACtC,CAAA"}
@@ -59,4 +59,20 @@ export declare function computeVaultAllocation(vaultAddress: string, decimals: n
59
59
  exposures: VaultMarketExposure[];
60
60
  liquidityFormatted: number;
61
61
  };
62
+ /**
63
+ * Allocation walk for **Morpho Vaults V2** (adapter-based). Unlike V1, the
64
+ * per-market assets come **directly** from the adapter's
65
+ * `expectedSupplyAssets(marketId)` (no share→asset conversion), so this takes a
66
+ * pre-resolved `marketAssetsRaw` map (marketId → raw underlying) instead of
67
+ * `positionMap` + a share/asset ratio. Everything else mirrors
68
+ * {@link computeVaultAllocation}: market supply APR + liquidity come from the
69
+ * same lens-sourced `rateMap`, the result is allocation-weighted over total
70
+ * assets and net of the vault's performance fee, and `liquidity` is
71
+ * `idle + Σ min(allocation, market liquid)` clamped to total assets.
72
+ */
73
+ export declare function computeV2Allocation(decimals: number, totalAssetsFormatted: number, feePercent: number, priceUsd: number, marketAssetsRaw: Map<string, bigint>, rateMap: Map<string, MarketRate>, tokenList: GenericTokenList, uidCtx?: MarketUidContext): {
74
+ depositRate: number;
75
+ exposures: VaultMarketExposure[];
76
+ liquidityFormatted: number;
77
+ };
62
78
  //# sourceMappingURL=allocationWalk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"allocationWalk.d.ts","sourceRoot":"","sources":["../../../src/vaults/morpho/allocationWalk.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAItE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAA;CACjB;AAkBD;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAA;IACzB;;;oDAGgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,oBAAoB,EAAE,EAC/B,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAC5B,cAAc,EAAE,sBAAsB,GACrC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,SAAS,EAAE,gBAAgB,EAC3B,MAAM,CAAC,EAAE,gBAAgB,GACxB;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,mBAAmB,EAAE,CAAA;IAChC,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CA+DA"}
1
+ {"version":3,"file":"allocationWalk.d.ts","sourceRoot":"","sources":["../../../src/vaults/morpho/allocationWalk.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAItE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAA;CACjB;AAkBD;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAA;IACzB;;;oDAGgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,oBAAoB,EAAE,EAC/B,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAC5B,cAAc,EAAE,sBAAsB,GACrC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,SAAS,EAAE,gBAAgB,EAC3B,MAAM,CAAC,EAAE,gBAAgB,GACxB;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,mBAAmB,EAAE,CAAA;IAChC,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CA+DA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAChC,SAAS,EAAE,gBAAgB,EAC3B,MAAM,CAAC,EAAE,gBAAgB,GACxB;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,mBAAmB,EAAE,CAAA;IAChC,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAsDA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchFromChain.d.ts","sourceRoot":"","sources":["../../../src/vaults/morpho/fetchFromChain.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAGtE,OAAO,EAAe,YAAY,EAAE,MAAM,SAAS,CAAA;AAkHnD,MAAM,WAAW,iCAAiC;IAChD,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAA;CACxC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,gBAAgB,sBAAsB,EACtC,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,EAChC,OAAM,iCAAsC,KAC3C,OAAO,CAAC,YAAY,CAgGtB,CAAA"}
1
+ {"version":3,"file":"fetchFromChain.d.ts","sourceRoot":"","sources":["../../../src/vaults/morpho/fetchFromChain.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAGtE,OAAO,EAAe,YAAY,EAAE,MAAM,SAAS,CAAA;AAgKnD,MAAM,WAAW,iCAAiC;IAChD,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAA;CACxC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,gBAAgB,sBAAsB,EACtC,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,EAChC,OAAM,iCAAsC,KAC3C,OAAO,CAAC,YAAY,CAmKtB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../src/vaults/savings/fetchPublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKtE,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAA;AAI1D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,EACf,gBAAgB,sBAAsB,EACtC,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,KAC/B,OAAO,CAAC,aAAa,CAsHvB,CAAA"}
1
+ {"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../src/vaults/savings/fetchPublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKtE,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAA;AAI1D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,EACf,gBAAgB,sBAAsB,EACtC,SAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACxC,YAAW,gBAAqB,KAC/B,OAAO,CAAC,aAAa,CAuHvB,CAAA"}
@@ -45,6 +45,11 @@ export interface SavingsVault extends VaultClassificationFields {
45
45
  curatorName: string;
46
46
  /** Share decimals (most are 18; Maple syrup* are 6). */
47
47
  decimals: number;
48
+ /** Underlying asset decimals. Equals `decimals` for nearly every entry;
49
+ * diverges for e.g. yUSD (18-dec shares over 6-dec USDC). Load-bearing
50
+ * for share→asset formatting and the cross-provider `sharePrice`
51
+ * (parity with the LST/Lagoon/Yearn providers). */
52
+ assetDecimals: number;
48
53
  /** Total underlying held, raw integer (wei-like) as string. From
49
54
  * `totalAssets()`. */
50
55
  totalAssets: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vaults/savings/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAElE;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,gBAAgB,GAChB,QAAQ,GACR,eAAe,GACf,eAAe,CAAA;AAEnB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAa,SAAQ,yBAAyB;IAC7D,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAA;IACd;yCACqC;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ;gEAC4D;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAA;IACb;8DAC0D;IAC1D,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAA;IAEhB;2BACuB;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAA;IACvB,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAA;IACvB;wEACoE;IACpE,YAAY,EAAE,MAAM,CAAA;IAEpB;4CACwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB;2DACuD;IACvD,WAAW,EAAE,MAAM,CAAA;IACnB;iBACa;IACb,WAAW,EAAE,MAAM,CAAA;IAEnB;yDACqD;IACrD,SAAS,EAAE,IAAI,CAAA;IACf;;mEAE+D;IAC/D,UAAU,EAAE,OAAO,CAAA;IACnB;iDAC6C;IAC7C,UAAU,EAAE,OAAO,CAAA;IAEnB;;4DAEwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4BAA4B;IAC5B,cAAc,EAAE,qBAAqB,CAAA;IACrC;;;;iBAIa;IACb,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAElC,oEAAoE;IACpE,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mEAAmE;IACnE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;;;0EAMsE;IACtE,SAAS,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAAA;CACrC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vaults/savings/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAElE;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,gBAAgB,GAChB,QAAQ,GACR,eAAe,GACf,eAAe,CAAA;AAEnB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAa,SAAQ,yBAAyB;IAC7D,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAA;IACd;yCACqC;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ;gEAC4D;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAA;IACb;8DAC0D;IAC1D,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAA;IAChB;;;wDAGoD;IACpD,aAAa,EAAE,MAAM,CAAA;IAErB;2BACuB;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAA;IACvB,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAA;IACvB;wEACoE;IACpE,YAAY,EAAE,MAAM,CAAA;IAEpB;4CACwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB;2DACuD;IACvD,WAAW,EAAE,MAAM,CAAA;IACnB;iBACa;IACb,WAAW,EAAE,MAAM,CAAA;IAEnB;yDACqD;IACrD,SAAS,EAAE,IAAI,CAAA;IACf;;mEAE+D;IAC/D,UAAU,EAAE,OAAO,CAAA;IACnB;iDAC6C;IAC7C,UAAU,EAAE,OAAO,CAAA;IAEnB;;4DAEwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4BAA4B;IAC5B,cAAc,EAAE,qBAAqB,CAAA;IACrC;;;;iBAIa;IACb,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAElC,oEAAoE;IACpE,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mEAAmE;IACnE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;;;0EAMsE;IACtE,SAAS,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAAA;CACrC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1delta/margin-fetcher",
3
- "version": "0.0.276",
3
+ "version": "0.0.278",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "files": [
@@ -23,11 +23,11 @@
23
23
  "async-retry": "^1.3.3",
24
24
  "lodash": "^4.17.23",
25
25
  "@1delta/abis": "0.0.19",
26
+ "@1delta/calldata-sdk": "0.0.151",
26
27
  "@1delta/dex-registry": "0.0.101",
27
- "@1delta/lender-registry": "0.0.32",
28
28
  "@1delta/providers": "0.0.59",
29
- "@1delta/calldata-sdk": "0.0.151",
30
- "@1delta/proxy-fetch": "0.0.1"
29
+ "@1delta/proxy-fetch": "0.0.1",
30
+ "@1delta/lender-registry": "0.0.32"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/async-retry": "^1.4.9",