@1delta/margin-fetcher 0.0.263 → 0.0.266
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abis/compound-v2/KineticLens.d.ts +97 -0
- package/dist/abis/compound-v2/KineticLens.d.ts.map +1 -0
- package/dist/ccip-XQNAHYUN.js +5 -0
- package/dist/{ccip-SQXTDOS7.js.map → ccip-XQNAHYUN.js.map} +1 -1
- package/dist/{chunk-KQ6K6D2V.js → chunk-H6U3H7VY.js} +4 -4
- package/dist/{chunk-KQ6K6D2V.js.map → chunk-H6U3H7VY.js.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8476 -381
- package/dist/index.js.map +1 -1
- package/dist/lending/public-data/addresses/compoundV2.d.ts.map +1 -1
- package/dist/lending/public-data/compound-v2/convert/kinetic.d.ts +52 -0
- package/dist/lending/public-data/compound-v2/convert/kinetic.d.ts.map +1 -0
- package/dist/lending/public-data/compound-v2/getters/kinetic.d.ts +47 -0
- package/dist/lending/public-data/compound-v2/getters/kinetic.d.ts.map +1 -0
- package/dist/lending/public-data/compound-v2/publicCallBuild.d.ts +100 -0
- package/dist/lending/public-data/compound-v2/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/public-data/compound-v2/publicCallParse.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/vaults/classification.d.ts +78 -0
- package/dist/vaults/classification.d.ts.map +1 -0
- package/dist/vaults/euler-earn/types.d.ts +2 -1
- package/dist/vaults/euler-earn/types.d.ts.map +1 -1
- package/dist/vaults/fetchVaultsAll.d.ts +25 -1
- package/dist/vaults/fetchVaultsAll.d.ts.map +1 -1
- package/dist/vaults/fluid/types.d.ts +2 -1
- package/dist/vaults/fluid/types.d.ts.map +1 -1
- package/dist/vaults/gearbox/types.d.ts +2 -1
- package/dist/vaults/gearbox/types.d.ts.map +1 -1
- package/dist/vaults/gmx/abis.d.ts +590 -0
- package/dist/vaults/gmx/abis.d.ts.map +1 -0
- package/dist/vaults/gmx/api.d.ts +54 -0
- package/dist/vaults/gmx/api.d.ts.map +1 -0
- package/dist/vaults/gmx/contracts.d.ts +20 -0
- package/dist/vaults/gmx/contracts.d.ts.map +1 -0
- package/dist/vaults/gmx/fetchPublic.d.ts +21 -0
- package/dist/vaults/gmx/fetchPublic.d.ts.map +1 -0
- package/dist/vaults/gmx/fetchUser.d.ts +19 -0
- package/dist/vaults/gmx/fetchUser.d.ts.map +1 -0
- package/dist/vaults/gmx/index.d.ts +9 -0
- package/dist/vaults/gmx/index.d.ts.map +1 -0
- package/dist/vaults/gmx/keys.d.ts +25 -0
- package/dist/vaults/gmx/keys.d.ts.map +1 -0
- package/dist/vaults/gmx/pricing.d.ts +52 -0
- package/dist/vaults/gmx/pricing.d.ts.map +1 -0
- package/dist/vaults/gmx/registry.d.ts +13 -0
- package/dist/vaults/gmx/registry.d.ts.map +1 -0
- package/dist/vaults/gmx/types.d.ts +155 -0
- package/dist/vaults/gmx/types.d.ts.map +1 -0
- package/dist/vaults/hypercore/fetchPublic.d.ts +13 -0
- package/dist/vaults/hypercore/fetchPublic.d.ts.map +1 -0
- package/dist/vaults/hypercore/fetchUser.d.ts +18 -0
- package/dist/vaults/hypercore/fetchUser.d.ts.map +1 -0
- package/dist/vaults/hypercore/index.d.ts +5 -0
- package/dist/vaults/hypercore/index.d.ts.map +1 -0
- package/dist/vaults/hypercore/registry.d.ts +19 -0
- package/dist/vaults/hypercore/registry.d.ts.map +1 -0
- package/dist/vaults/hypercore/types.d.ts +80 -0
- package/dist/vaults/hypercore/types.d.ts.map +1 -0
- package/dist/vaults/index.d.ts +8 -0
- package/dist/vaults/index.d.ts.map +1 -1
- package/dist/vaults/interfaceKind.d.ts +33 -0
- package/dist/vaults/interfaceKind.d.ts.map +1 -0
- package/dist/vaults/lagoon/api.d.ts +67 -0
- package/dist/vaults/lagoon/api.d.ts.map +1 -0
- package/dist/vaults/lagoon/fetchPublic.d.ts +19 -0
- package/dist/vaults/lagoon/fetchPublic.d.ts.map +1 -0
- package/dist/vaults/lagoon/index.d.ts +4 -0
- package/dist/vaults/lagoon/index.d.ts.map +1 -0
- package/dist/vaults/lagoon/types.d.ts +104 -0
- package/dist/vaults/lagoon/types.d.ts.map +1 -0
- package/dist/vaults/lookup.d.ts +20 -0
- package/dist/vaults/lookup.d.ts.map +1 -1
- package/dist/vaults/lst/abis/ankr.d.ts +14 -0
- package/dist/vaults/lst/abis/ankr.d.ts.map +1 -0
- package/dist/vaults/lst/abis/beets.d.ts +21 -0
- package/dist/vaults/lst/abis/beets.d.ts.map +1 -0
- package/dist/vaults/lst/abis/benqi.d.ts +25 -0
- package/dist/vaults/lst/abis/benqi.d.ts.map +1 -0
- package/dist/vaults/lst/abis/dinero.d.ts +16 -0
- package/dist/vaults/lst/abis/dinero.d.ts.map +1 -0
- package/dist/vaults/lst/abis/etherfi.d.ts +21 -0
- package/dist/vaults/lst/abis/etherfi.d.ts.map +1 -0
- package/dist/vaults/lst/abis/hyperbeat.d.ts +17 -0
- package/dist/vaults/lst/abis/hyperbeat.d.ts.map +1 -0
- package/dist/vaults/lst/abis/index.d.ts +30 -0
- package/dist/vaults/lst/abis/index.d.ts.map +1 -0
- package/dist/vaults/lst/abis/kelp.d.ts +11 -0
- package/dist/vaults/lst/abis/kelp.d.ts.map +1 -0
- package/dist/vaults/lst/abis/kinetiq.d.ts +16 -0
- package/dist/vaults/lst/abis/kinetiq.d.ts.map +1 -0
- package/dist/vaults/lst/abis/lair.d.ts +25 -0
- package/dist/vaults/lst/abis/lair.d.ts.map +1 -0
- package/dist/vaults/lst/abis/lido.d.ts +11 -0
- package/dist/vaults/lst/abis/lido.d.ts.map +1 -0
- package/dist/vaults/lst/abis/lista.d.ts +28 -0
- package/dist/vaults/lst/abis/lista.d.ts.map +1 -0
- package/dist/vaults/lst/abis/mantle.d.ts +15 -0
- package/dist/vaults/lst/abis/mantle.d.ts.map +1 -0
- package/dist/vaults/lst/abis/renzo.d.ts +17 -0
- package/dist/vaults/lst/abis/renzo.d.ts.map +1 -0
- package/dist/vaults/lst/abis/rocketpool.d.ts +29 -0
- package/dist/vaults/lst/abis/rocketpool.d.ts.map +1 -0
- package/dist/vaults/lst/abis/shared.d.ts +57 -0
- package/dist/vaults/lst/abis/shared.d.ts.map +1 -0
- package/dist/vaults/lst/abis/stader.d.ts +34 -0
- package/dist/vaults/lst/abis/stader.d.ts.map +1 -0
- package/dist/vaults/lst/abis/stakewise.d.ts +16 -0
- package/dist/vaults/lst/abis/stakewise.d.ts.map +1 -0
- package/dist/vaults/lst/abis/stcelo.d.ts +17 -0
- package/dist/vaults/lst/abis/stcelo.d.ts.map +1 -0
- package/dist/vaults/lst/abis/swell.d.ts +13 -0
- package/dist/vaults/lst/abis/swell.d.ts.map +1 -0
- package/dist/vaults/lst/abis/valantis.d.ts +13 -0
- package/dist/vaults/lst/abis/valantis.d.ts.map +1 -0
- package/dist/vaults/lst/abis/veda.d.ts +14 -0
- package/dist/vaults/lst/abis/veda.d.ts.map +1 -0
- package/dist/vaults/lst/fetchPublic.d.ts +25 -0
- package/dist/vaults/lst/fetchPublic.d.ts.map +1 -0
- package/dist/vaults/lst/index.d.ts +5 -0
- package/dist/vaults/lst/index.d.ts.map +1 -0
- package/dist/vaults/lst/readers/ankr.d.ts +16 -0
- package/dist/vaults/lst/readers/ankr.d.ts.map +1 -0
- package/dist/vaults/lst/readers/beets.d.ts +16 -0
- package/dist/vaults/lst/readers/beets.d.ts.map +1 -0
- package/dist/vaults/lst/readers/benqi.d.ts +16 -0
- package/dist/vaults/lst/readers/benqi.d.ts.map +1 -0
- package/dist/vaults/lst/readers/bgtWrapper.d.ts +14 -0
- package/dist/vaults/lst/readers/bgtWrapper.d.ts.map +1 -0
- package/dist/vaults/lst/readers/dinero.d.ts +14 -0
- package/dist/vaults/lst/readers/dinero.d.ts.map +1 -0
- package/dist/vaults/lst/readers/erc4626.d.ts +23 -0
- package/dist/vaults/lst/readers/erc4626.d.ts.map +1 -0
- package/dist/vaults/lst/readers/etherfi.d.ts +15 -0
- package/dist/vaults/lst/readers/etherfi.d.ts.map +1 -0
- package/dist/vaults/lst/readers/hyperbeat.d.ts +17 -0
- package/dist/vaults/lst/readers/hyperbeat.d.ts.map +1 -0
- package/dist/vaults/lst/readers/index.d.ts +22 -0
- package/dist/vaults/lst/readers/index.d.ts.map +1 -0
- package/dist/vaults/lst/readers/kelp.d.ts +13 -0
- package/dist/vaults/lst/readers/kelp.d.ts.map +1 -0
- package/dist/vaults/lst/readers/kinetiq.d.ts +17 -0
- package/dist/vaults/lst/readers/kinetiq.d.ts.map +1 -0
- package/dist/vaults/lst/readers/lair.d.ts +16 -0
- package/dist/vaults/lst/readers/lair.d.ts.map +1 -0
- package/dist/vaults/lst/readers/lido.d.ts +12 -0
- package/dist/vaults/lst/readers/lido.d.ts.map +1 -0
- package/dist/vaults/lst/readers/lista.d.ts +17 -0
- package/dist/vaults/lst/readers/lista.d.ts.map +1 -0
- package/dist/vaults/lst/readers/mantle.d.ts +14 -0
- package/dist/vaults/lst/readers/mantle.d.ts.map +1 -0
- package/dist/vaults/lst/readers/offChain.d.ts +11 -0
- package/dist/vaults/lst/readers/offChain.d.ts.map +1 -0
- package/dist/vaults/lst/readers/renzo.d.ts +19 -0
- package/dist/vaults/lst/readers/renzo.d.ts.map +1 -0
- package/dist/vaults/lst/readers/rocketpool.d.ts +17 -0
- package/dist/vaults/lst/readers/rocketpool.d.ts.map +1 -0
- package/dist/vaults/lst/readers/shared.d.ts +65 -0
- package/dist/vaults/lst/readers/shared.d.ts.map +1 -0
- package/dist/vaults/lst/readers/stader.d.ts +34 -0
- package/dist/vaults/lst/readers/stader.d.ts.map +1 -0
- package/dist/vaults/lst/readers/stakewise.d.ts +14 -0
- package/dist/vaults/lst/readers/stakewise.d.ts.map +1 -0
- package/dist/vaults/lst/readers/stcelo.d.ts +15 -0
- package/dist/vaults/lst/readers/stcelo.d.ts.map +1 -0
- package/dist/vaults/lst/readers/swell.d.ts +13 -0
- package/dist/vaults/lst/readers/swell.d.ts.map +1 -0
- package/dist/vaults/lst/readers/valantis.d.ts +15 -0
- package/dist/vaults/lst/readers/valantis.d.ts.map +1 -0
- package/dist/vaults/lst/readers/veda.d.ts +19 -0
- package/dist/vaults/lst/readers/veda.d.ts.map +1 -0
- package/dist/vaults/lst/registry.d.ts +125 -0
- package/dist/vaults/lst/registry.d.ts.map +1 -0
- package/dist/vaults/lst/types.d.ts +124 -0
- package/dist/vaults/lst/types.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/beets.d.ts +51 -0
- package/dist/vaults/lst/withdrawals/abis/beets.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/behype.d.ts +52 -0
- package/dist/vaults/lst/withdrawals/abis/behype.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/benqi.d.ts +55 -0
- package/dist/vaults/lst/withdrawals/abis/benqi.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/berapaw.d.ts +33 -0
- package/dist/vaults/lst/withdrawals/abis/berapaw.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/erc7540.d.ts +50 -0
- package/dist/vaults/lst/withdrawals/abis/erc7540.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/ethena.d.ts +25 -0
- package/dist/vaults/lst/withdrawals/abis/ethena.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/etherfi.d.ts +70 -0
- package/dist/vaults/lst/withdrawals/abis/etherfi.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/ibera.d.ts +52 -0
- package/dist/vaults/lst/withdrawals/abis/ibera.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/index.d.ts +24 -0
- package/dist/vaults/lst/withdrawals/abis/index.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/kelp.d.ts +46 -0
- package/dist/vaults/lst/withdrawals/abis/kelp.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/kinetiq.d.ts +59 -0
- package/dist/vaults/lst/withdrawals/abis/kinetiq.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/lido.d.ts +53 -0
- package/dist/vaults/lst/withdrawals/abis/lido.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/lista.d.ts +47 -0
- package/dist/vaults/lst/withdrawals/abis/lista.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/mantle.d.ts +54 -0
- package/dist/vaults/lst/withdrawals/abis/mantle.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/primestaking.d.ts +57 -0
- package/dist/vaults/lst/withdrawals/abis/primestaking.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/puffer.d.ts +48 -0
- package/dist/vaults/lst/withdrawals/abis/puffer.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/renzo.d.ts +50 -0
- package/dist/vaults/lst/withdrawals/abis/renzo.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/staderEthx.d.ts +48 -0
- package/dist/vaults/lst/withdrawals/abis/staderEthx.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/staderMaticx.d.ts +50 -0
- package/dist/vaults/lst/withdrawals/abis/staderMaticx.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/stakewise.d.ts +47 -0
- package/dist/vaults/lst/withdrawals/abis/stakewise.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/stcelo.d.ts +24 -0
- package/dist/vaults/lst/withdrawals/abis/stcelo.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/swell.d.ts +66 -0
- package/dist/vaults/lst/withdrawals/abis/swell.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/trufin.d.ts +43 -0
- package/dist/vaults/lst/withdrawals/abis/trufin.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/valantis.d.ts +46 -0
- package/dist/vaults/lst/withdrawals/abis/valantis.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/abis/yieldnest.d.ts +65 -0
- package/dist/vaults/lst/withdrawals/abis/yieldnest.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/fetchPublic.d.ts +53 -0
- package/dist/vaults/lst/withdrawals/fetchPublic.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/index.d.ts +5 -0
- package/dist/vaults/lst/withdrawals/index.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/beets.d.ts +13 -0
- package/dist/vaults/lst/withdrawals/readers/beets.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/behype.d.ts +15 -0
- package/dist/vaults/lst/withdrawals/readers/behype.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/benqi.d.ts +15 -0
- package/dist/vaults/lst/withdrawals/readers/benqi.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/berapaw.d.ts +13 -0
- package/dist/vaults/lst/withdrawals/readers/berapaw.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/empty.d.ts +21 -0
- package/dist/vaults/lst/withdrawals/readers/empty.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/erc7540.d.ts +22 -0
- package/dist/vaults/lst/withdrawals/readers/erc7540.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/ethenaCooldown.d.ts +13 -0
- package/dist/vaults/lst/withdrawals/readers/ethenaCooldown.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/etherfi.d.ts +13 -0
- package/dist/vaults/lst/withdrawals/readers/etherfi.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/ibera.d.ts +3 -0
- package/dist/vaults/lst/withdrawals/readers/ibera.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/index.d.ts +7 -0
- package/dist/vaults/lst/withdrawals/readers/index.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/kelp.d.ts +21 -0
- package/dist/vaults/lst/withdrawals/readers/kelp.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/kinetiq.d.ts +13 -0
- package/dist/vaults/lst/withdrawals/readers/kinetiq.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/lair.d.ts +23 -0
- package/dist/vaults/lst/withdrawals/readers/lair.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/lido.d.ts +16 -0
- package/dist/vaults/lst/withdrawals/readers/lido.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/lista.d.ts +18 -0
- package/dist/vaults/lst/withdrawals/readers/lista.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/mantle.d.ts +18 -0
- package/dist/vaults/lst/withdrawals/readers/mantle.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/primestaking.d.ts +3 -0
- package/dist/vaults/lst/withdrawals/readers/primestaking.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/puffer.d.ts +17 -0
- package/dist/vaults/lst/withdrawals/readers/puffer.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/renzo.d.ts +16 -0
- package/dist/vaults/lst/withdrawals/readers/renzo.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/shared.d.ts +56 -0
- package/dist/vaults/lst/withdrawals/readers/shared.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/staderEthx.d.ts +15 -0
- package/dist/vaults/lst/withdrawals/readers/staderEthx.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/staderMaticx.d.ts +18 -0
- package/dist/vaults/lst/withdrawals/readers/staderMaticx.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/stakewise.d.ts +26 -0
- package/dist/vaults/lst/withdrawals/readers/stakewise.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/stcelo.d.ts +16 -0
- package/dist/vaults/lst/withdrawals/readers/stcelo.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/swell.d.ts +18 -0
- package/dist/vaults/lst/withdrawals/readers/swell.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/trufin.d.ts +19 -0
- package/dist/vaults/lst/withdrawals/readers/trufin.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/valantis.d.ts +11 -0
- package/dist/vaults/lst/withdrawals/readers/valantis.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/readers/yieldnest.d.ts +11 -0
- package/dist/vaults/lst/withdrawals/readers/yieldnest.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/registry.d.ts +46 -0
- package/dist/vaults/lst/withdrawals/registry.d.ts.map +1 -0
- package/dist/vaults/lst/withdrawals/types.d.ts +74 -0
- package/dist/vaults/lst/withdrawals/types.d.ts.map +1 -0
- package/dist/vaults/lst/yieldBinding.d.ts +26 -0
- package/dist/vaults/lst/yieldBinding.d.ts.map +1 -0
- package/dist/vaults/morpho/types.d.ts +2 -1
- package/dist/vaults/morpho/types.d.ts.map +1 -1
- package/dist/vaults/savings/abis/index.d.ts +12 -0
- package/dist/vaults/savings/abis/index.d.ts.map +1 -0
- package/dist/vaults/savings/abis/shared.d.ts +33 -0
- package/dist/vaults/savings/abis/shared.d.ts.map +1 -0
- package/dist/vaults/savings/fetchPublic.d.ts +22 -0
- package/dist/vaults/savings/fetchPublic.d.ts.map +1 -0
- package/dist/vaults/savings/index.d.ts +4 -0
- package/dist/vaults/savings/index.d.ts.map +1 -0
- package/dist/vaults/savings/readers/erc4626.d.ts +25 -0
- package/dist/vaults/savings/readers/erc4626.d.ts.map +1 -0
- package/dist/vaults/savings/readers/index.d.ts +16 -0
- package/dist/vaults/savings/readers/index.d.ts.map +1 -0
- package/dist/vaults/savings/readers/shared.d.ts +44 -0
- package/dist/vaults/savings/readers/shared.d.ts.map +1 -0
- package/dist/vaults/savings/registry.d.ts +69 -0
- package/dist/vaults/savings/registry.d.ts.map +1 -0
- package/dist/vaults/savings/types.d.ts +111 -0
- package/dist/vaults/savings/types.d.ts.map +1 -0
- package/dist/vaults/savings/yieldBinding.d.ts +19 -0
- package/dist/vaults/savings/yieldBinding.d.ts.map +1 -0
- package/dist/vaults/silo/types.d.ts +2 -1
- package/dist/vaults/silo/types.d.ts.map +1 -1
- package/dist/vaults/yield/annualize.d.ts +62 -0
- package/dist/vaults/yield/annualize.d.ts.map +1 -0
- package/dist/vaults/yield/index.d.ts +3 -0
- package/dist/vaults/yield/index.d.ts.map +1 -0
- package/dist/vaults/yield/sharePrice.d.ts +21 -0
- package/dist/vaults/yield/sharePrice.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/ankr.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/ankr.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/berapaw.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/berapaw.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/defillama.d.ts +2 -0
- package/dist/yields/intrinsic/fetchers/defillama.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/dinero.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/dinero.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/etherfi.d.ts +1 -0
- package/dist/yields/intrinsic/fetchers/etherfi.d.ts.map +1 -1
- package/dist/yields/intrinsic/fetchers/infrared.d.ts +4 -0
- package/dist/yields/intrinsic/fetchers/infrared.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/kinetiq.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/kinetiq.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/lair.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/lair.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/lista.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/lista.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/lombard.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/lombard.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/primestaking.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/primestaking.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/solv.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/solv.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/stcelo.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/stcelo.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/swBTC.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/swBTC.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/trufin.d.ts +1 -0
- package/dist/yields/intrinsic/fetchers/trufin.d.ts.map +1 -1
- package/dist/yields/intrinsic/fetchers/valantis.d.ts +3 -0
- package/dist/yields/intrinsic/fetchers/valantis.d.ts.map +1 -0
- package/dist/yields/intrinsic/fetchers/yieldnest.d.ts.map +1 -1
- package/dist/yields/intrinsic/index.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/ccip-SQXTDOS7.js +0 -5
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalised shape for a single pending withdrawal request, uniform
|
|
3
|
+
* across all LST protocols regardless of underlying mechanism
|
|
4
|
+
* (fixed-cooldown vs queue-finalization vs ERC-7540).
|
|
5
|
+
*
|
|
6
|
+
* Consumers (UI, worker-api) treat the list as a single bucket;
|
|
7
|
+
* protocol-specific fields like `queuePosition` are populated when
|
|
8
|
+
* available and ignored otherwise.
|
|
9
|
+
*
|
|
10
|
+
* See [../LST_WITHDRAWAL_QUEUES.md](../LST_WITHDRAWAL_QUEUES.md) for
|
|
11
|
+
* the per-protocol enumeration ABI and the
|
|
12
|
+
* [GAPS.md](../../GAPS.md) section A for the design intent.
|
|
13
|
+
*/
|
|
14
|
+
export interface LstWithdrawalRequest {
|
|
15
|
+
/** LST share-token address the request was made against. */
|
|
16
|
+
lst: string;
|
|
17
|
+
/** Brand label — `Lido`, `EtherFi`, `Renzo`, … */
|
|
18
|
+
brand: string;
|
|
19
|
+
/** Symbol — `wstETH`, `weETH`, `ezETH`, … */
|
|
20
|
+
symbol: string;
|
|
21
|
+
/** Protocol-native request identifier (NFT tokenId, queue index,
|
|
22
|
+
* ERC-7540 requestId, …). Encoded as a string for cross-protocol
|
|
23
|
+
* uniformity. */
|
|
24
|
+
requestId: string;
|
|
25
|
+
/** Raw underlying amount the request will return on claim. Wei-like
|
|
26
|
+
* integer string. Some protocols only know this at claim time
|
|
27
|
+
* (queue-finalization with floating finalization rate) — those
|
|
28
|
+
* surface the **expected** amount at request time. */
|
|
29
|
+
amountUnderlying: string;
|
|
30
|
+
/** Status discriminator. */
|
|
31
|
+
status: LstWithdrawalStatus;
|
|
32
|
+
/** Unix seconds when the request becomes claimable. Set for
|
|
33
|
+
* fixed-cooldown protocols where the deadline is deterministic.
|
|
34
|
+
* Unset for queue-finalization protocols (use `queuePosition` +
|
|
35
|
+
* `etaSeconds` instead) and ERC-7540 (use `status` directly). */
|
|
36
|
+
readyAt?: number;
|
|
37
|
+
/** Unix seconds when the claim window closes. Currently only used
|
|
38
|
+
* by sAVAX (15-day cooldown + 2-day claim window). After this
|
|
39
|
+
* timestamp the request transitions to `expired` and the unlock
|
|
40
|
+
* is forfeited unless admin recovery is triggered. */
|
|
41
|
+
expiresAt?: number;
|
|
42
|
+
/** Position in the protocol's queue, relative to the finalization
|
|
43
|
+
* frontier. Set for queue-finalization protocols. Positive values
|
|
44
|
+
* mean "still pending"; zero or negative means "finalized". */
|
|
45
|
+
queuePosition?: number;
|
|
46
|
+
/** Off-chain estimate of seconds-to-claim. Only set when the
|
|
47
|
+
* orchestrator received a finalization-rate sample (TODO: not
|
|
48
|
+
* yet wired). Frontier-based protocols can show this when
|
|
49
|
+
* available. */
|
|
50
|
+
etaSeconds?: number;
|
|
51
|
+
}
|
|
52
|
+
/** Status discriminator for a withdrawal request. */
|
|
53
|
+
export type LstWithdrawalStatus =
|
|
54
|
+
/** Submitted; not yet claimable. */
|
|
55
|
+
'pending'
|
|
56
|
+
/** Ready to claim now. */
|
|
57
|
+
| 'claimable'
|
|
58
|
+
/** Already claimed (typically pruned from the list — kept for
|
|
59
|
+
* protocols that surface historical entries via the same getter). */
|
|
60
|
+
| 'claimed'
|
|
61
|
+
/** Window expired without being claimed. Only meaningful for
|
|
62
|
+
* sAVAX-style protocols with a finite claim window. */
|
|
63
|
+
| 'expired';
|
|
64
|
+
/** Withdrawal-reader implementation kind — drives which enumeration
|
|
65
|
+
* function the user is queried against. */
|
|
66
|
+
export type LstWithdrawalReaderKind = 'lidoQueue' | 'etherfiNft' | 'yieldNestNft' | 'staderEthxQueue' | 'staderMaticXQueue' | 'renzoQueue' | 'kelpQueue' | 'benqiSavaxQueue' | 'beetsStSQueue' | 'hyperbeatBeHype7540' | 'erc7540' | 'ethenaCooldown' | 'swellNft' | 'stakeWiseSubgraph' | 'mantleCallerSuppliedIds' | 'pufferCallerSuppliedIds' | 'trufinCallerSuppliedIds' | 'lairCallerSuppliedIds' | 'stceloAccountQueue' | 'kinetiqQueue' | 'beHypeQueue' | 'valantisBurnQueue' | 'listaQueue' | 'iberaQueue' | 'primeStakingQueue' | 'berapawRedeemQueue' | 'eventsOnly' | 'noQueue' | 'unverified';
|
|
67
|
+
/** Map keyed by lowercased LST share-token address. The orchestrator
|
|
68
|
+
* fetches all LSTs on a chain in parallel and returns this map
|
|
69
|
+
* (possibly with empty arrays for LSTs the user has no requests
|
|
70
|
+
* against). */
|
|
71
|
+
export type LstWithdrawalRequestsByLst = {
|
|
72
|
+
[lstAddress: string]: LstWithdrawalRequest[];
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lst/withdrawals/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAA;IACX,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAA;IACb,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd;;sBAEkB;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB;;;2DAGuD;IACvD,gBAAgB,EAAE,MAAM,CAAA;IACxB,4BAA4B;IAC5B,MAAM,EAAE,mBAAmB,CAAA;IAC3B;;;sEAGkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;2DAGuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;oEAEgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;qBAGiB;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qDAAqD;AACrD,MAAM,MAAM,mBAAmB;AAC7B,oCAAoC;AAClC,SAAS;AACX,0BAA0B;GACxB,WAAW;AACb;sEACsE;GACpE,SAAS;AACX;wDACwD;GACtD,SAAS,CAAA;AAEb;4CAC4C;AAC5C,MAAM,MAAM,uBAAuB,GAC/B,WAAW,GACX,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,mBAAmB,GACnB,YAAY,GACZ,WAAW,GACX,iBAAiB,GACjB,eAAe,GACf,qBAAqB,GACrB,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,mBAAmB,GACnB,yBAAyB,GACzB,yBAAyB,GACzB,yBAAyB,GACzB,uBAAuB,GACvB,oBAAoB,GACpB,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,YAAY,GACZ,YAAY,GACZ,mBAAmB,GACnB,oBAAoB,GACpB,YAAY,GACZ,SAAS,GACT,YAAY,CAAA;AAEhB;;;gBAGgB;AAChB,MAAM,MAAM,0BAA0B,GAAG;IACvC,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAAA;CAC7C,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { LstRegistryEntry } from './registry';
|
|
2
|
+
/**
|
|
3
|
+
* Runs every yield source referenced by an LST registry slice and
|
|
4
|
+
* returns a flat `address → apr%` map.
|
|
5
|
+
*
|
|
6
|
+
* Two pieces of complexity wrapped here:
|
|
7
|
+
*
|
|
8
|
+
* 1. **Dedup** — many registry entries can point at the same
|
|
9
|
+
* `YieldFetcher` instance (today only one does, but the wstETH /
|
|
10
|
+
* weETH composition pattern lights this up). We collect unique
|
|
11
|
+
* fetcher refs, run each `safeFetch` once, and reuse the result
|
|
12
|
+
* when reading per-entry keys.
|
|
13
|
+
*
|
|
14
|
+
* 2. **weETH special case** — `createWeethFetcher` needs a wstETH
|
|
15
|
+
* promise as input because EtherFi's APR is `wstETH APR + LRT2
|
|
16
|
+
* bonus`. We compute it here using the same wstETH result we
|
|
17
|
+
* already fetched (or a fresh one) — the registry can't pre-bind
|
|
18
|
+
* it cleanly because `wstethFetcher` is a `YieldFetcher` not a
|
|
19
|
+
* `Promise`.
|
|
20
|
+
*
|
|
21
|
+
* Returns `{ [shareAddressLowercase]: aprPercent }`. Missing keys
|
|
22
|
+
* become `0` downstream — never `undefined` — so the parser doesn't
|
|
23
|
+
* have to branch.
|
|
24
|
+
*/
|
|
25
|
+
export declare const resolveYieldApr: (entries: LstRegistryEntry[]) => Promise<Record<string, number>>;
|
|
26
|
+
//# sourceMappingURL=yieldBinding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yieldBinding.d.ts","sourceRoot":"","sources":["../../../src/vaults/lst/yieldBinding.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,gBAAgB,EAAE,KAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoDhC,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GenericCurrency } from '../../types/general';
|
|
2
|
+
import type { VaultClassificationFields } from '../classification';
|
|
2
3
|
/** Curator metadata as surfaced by the Morpho API. */
|
|
3
4
|
export interface VaultCuratorMeta {
|
|
4
5
|
/** Curator slug, e.g. `gauntlet`, `kpk`, `steakhouse`. */
|
|
@@ -25,7 +26,7 @@ export interface VaultCuratorMeta {
|
|
|
25
26
|
* than underlying — differs from Fluid/Gearbox where one vault per
|
|
26
27
|
* underlying is the norm.
|
|
27
28
|
*/
|
|
28
|
-
export interface MorphoVault {
|
|
29
|
+
export interface MorphoVault extends VaultClassificationFields {
|
|
29
30
|
/** MetaMorpho vault (share token) contract address, lowercased. */
|
|
30
31
|
address: string;
|
|
31
32
|
/** Lowercased underlying ERC20 address. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vaults/morpho/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vaults/morpho/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAElE,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAA;IACV,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,WAAY,SAAQ,yBAAyB;IAC5D,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAA;IACd;;mDAE+C;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ;uEACmE;IACnE,WAAW,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAA;IAEhB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAA;IACnB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAA;IAEnB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAA;IAEnB,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAA;IACX,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAA;IAChB;iEAC6D;IAC7D,WAAW,EAAE,OAAO,CAAA;IAEpB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;8EAE0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;kCAC8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;kBAEc;IACd,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAE7B,oEAAoE;IACpE,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;;4EAKwE;IACxE,SAAS,EAAE,MAAM,CAAA;IACjB,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,yCAAyC;IACzC,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAA;CACpC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal ABI fragments for ERC-4626 savings vaults. Only the read
|
|
3
|
+
* surface we actually call is included.
|
|
4
|
+
*
|
|
5
|
+
* Every savings entry today uses the same generic ERC-4626 reader so
|
|
6
|
+
* a single `shared.ts` is sufficient. When a future entry needs a
|
|
7
|
+
* custom getter (e.g. a `floorPrice()` for a bond-shaped vault),
|
|
8
|
+
* add a per-protocol file (`abis/<protocol>.ts`) following the LST
|
|
9
|
+
* provider's pattern in [../../lst/abis/](../../lst/abis/).
|
|
10
|
+
*/
|
|
11
|
+
export * from './shared';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/vaults/savings/abis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,UAAU,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Standard ERC-20 `totalSupply()`. */
|
|
2
|
+
export declare const TotalSupplyAbi: readonly [{
|
|
3
|
+
readonly name: "totalSupply";
|
|
4
|
+
readonly type: "function";
|
|
5
|
+
readonly stateMutability: "view";
|
|
6
|
+
readonly inputs: readonly [];
|
|
7
|
+
readonly outputs: readonly [{
|
|
8
|
+
readonly type: "uint256";
|
|
9
|
+
}];
|
|
10
|
+
}];
|
|
11
|
+
/** ERC-4626 read surface — `totalAssets()` + `convertToAssets(uint256)`. */
|
|
12
|
+
export declare const Erc4626ReadAbi: readonly [{
|
|
13
|
+
readonly name: "totalAssets";
|
|
14
|
+
readonly type: "function";
|
|
15
|
+
readonly stateMutability: "view";
|
|
16
|
+
readonly inputs: readonly [];
|
|
17
|
+
readonly outputs: readonly [{
|
|
18
|
+
readonly type: "uint256";
|
|
19
|
+
}];
|
|
20
|
+
}, {
|
|
21
|
+
readonly name: "convertToAssets";
|
|
22
|
+
readonly type: "function";
|
|
23
|
+
readonly stateMutability: "view";
|
|
24
|
+
readonly inputs: readonly [{
|
|
25
|
+
readonly type: "uint256";
|
|
26
|
+
readonly name: "shares";
|
|
27
|
+
}];
|
|
28
|
+
readonly outputs: readonly [{
|
|
29
|
+
readonly type: "uint256";
|
|
30
|
+
readonly name: "assets";
|
|
31
|
+
}];
|
|
32
|
+
}];
|
|
33
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/vaults/savings/abis/shared.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,eAAO,MAAM,cAAc;;;;;;;;EAQjB,CAAA;AAEV,4EAA4E;AAC5E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;EAejB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { MulticallRetryFunction, GenericTokenList } from '../../types';
|
|
2
|
+
import type { SavingsVaults } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* One-shot fetcher for all savings vaults on a chain.
|
|
5
|
+
*
|
|
6
|
+
* Two parallel I/O legs that both feed the same output map:
|
|
7
|
+
*
|
|
8
|
+
* 1. **On-chain leg** — every reader's calls (3 per entry:
|
|
9
|
+
* `totalAssets`, `totalSupply`, `convertToAssets(10**decimals)`)
|
|
10
|
+
* are concatenated into a single `multicallRetry` payload. The
|
|
11
|
+
* response is sliced back into per-entry chunks and parsed;
|
|
12
|
+
* per-entry failures are silently dropped.
|
|
13
|
+
*
|
|
14
|
+
* 2. **APR leg** — `resolveYieldApr` dedups the registry's
|
|
15
|
+
* `YieldFetcher` refs and runs each once.
|
|
16
|
+
*
|
|
17
|
+
* Returns `{}` when the chain has no registry entries.
|
|
18
|
+
*/
|
|
19
|
+
export declare const fetchSavingsVaults: (chainId: string, multicallRetry: MulticallRetryFunction, prices?: {
|
|
20
|
+
[asset: string]: number;
|
|
21
|
+
}, tokenList?: GenericTokenList) => Promise<SavingsVaults>;
|
|
22
|
+
//# sourceMappingURL=fetchPublic.d.ts.map
|
|
@@ -0,0 +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,CAyGvB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vaults/savings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,YAAY,EACV,YAAY,EACZ,aAAa,EACb,qBAAqB,GACtB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,oBAAoB,GAC1B,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SavingsRegistryEntry } from '../registry';
|
|
2
|
+
import { type SavingsReader } from './shared';
|
|
3
|
+
/**
|
|
4
|
+
* Generic ERC-4626 reader — three calls per entry:
|
|
5
|
+
* 1. `totalAssets()`
|
|
6
|
+
* 2. `totalSupply()`
|
|
7
|
+
* 3. `convertToAssets(10**shareDecimals)`
|
|
8
|
+
*
|
|
9
|
+
* The third gives `assets per 1 share` in **raw underlying units**.
|
|
10
|
+
* To normalise to a 1e18-scaled "underlying per share" rate, we
|
|
11
|
+
* divide by `10**underlyingDecimals`.
|
|
12
|
+
*
|
|
13
|
+
* For vaults where share and underlying decimals match (the
|
|
14
|
+
* ERC-4626 convention) this collapses to `convertToAssets(1e18) *
|
|
15
|
+
* 1e18 / 1e18`. For yUSD (18-d shares over 6-d USDC) it correctly
|
|
16
|
+
* scales 1e6 → 1e18.
|
|
17
|
+
*
|
|
18
|
+
* Every savings entry today uses this reader. When a future entry
|
|
19
|
+
* diverges (rebasing-via-wrapper for srUSD, bond floor for USD0++,
|
|
20
|
+
* oracle-priced for RWA), add a sibling reader file under `readers/`
|
|
21
|
+
* mirroring [../../lst/readers/](../../lst/readers/) and extend the
|
|
22
|
+
* dispatch in [./index.ts](./index.ts).
|
|
23
|
+
*/
|
|
24
|
+
export declare const readerErc4626: (entry: SavingsRegistryEntry) => SavingsReader;
|
|
25
|
+
//# sourceMappingURL=erc4626.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc4626.d.ts","sourceRoot":"","sources":["../../../../src/vaults/savings/readers/erc4626.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,oBAAoB,KAAG,aAiC3D,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SavingsRegistryEntry } from '../registry';
|
|
2
|
+
import type { SavingsReader } from './shared';
|
|
3
|
+
export type { SavingsCall, SavingsOnChainState, SavingsReader } from './shared';
|
|
4
|
+
export { ONE_E18, toBigInt } from './shared';
|
|
5
|
+
/**
|
|
6
|
+
* Dispatch a registry entry to its reader.
|
|
7
|
+
*
|
|
8
|
+
* Today every savings entry uses the generic ERC-4626 reader. When a
|
|
9
|
+
* future entry needs a custom shape (e.g. wrapped-rebasing for srUSD,
|
|
10
|
+
* `floorPrice()` for USD0++, oracle-priced for RWA), add a
|
|
11
|
+
* `reader` discriminant to {@link SavingsRegistryEntry} and a case
|
|
12
|
+
* here — same pattern as
|
|
13
|
+
* [../../lst/readers/index.ts](../../lst/readers/index.ts).
|
|
14
|
+
*/
|
|
15
|
+
export declare const buildReader: (entry: SavingsRegistryEntry) => SavingsReader;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/vaults/savings/readers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAE5C;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,oBAAoB,KAAG,aACpC,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types and helpers for savings-vault readers.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors [../../lst/readers/shared.ts](../../lst/readers/shared.ts)
|
|
5
|
+
* so cross-provider tooling (orchestrator slicing, parser shape) stays
|
|
6
|
+
* uniform.
|
|
7
|
+
*/
|
|
8
|
+
/** 10**18 — scaling factor for normalised exchange rates. */
|
|
9
|
+
export declare const ONE_E18: bigint;
|
|
10
|
+
/** One multicall item — `{ address, name, params }` matched against
|
|
11
|
+
* a parallel ABI array, identical to every other vault provider. */
|
|
12
|
+
export interface SavingsCall {
|
|
13
|
+
address: string;
|
|
14
|
+
name: string;
|
|
15
|
+
params: readonly unknown[];
|
|
16
|
+
}
|
|
17
|
+
/** What a reader produces after consuming its multicall slice. */
|
|
18
|
+
export interface SavingsOnChainState {
|
|
19
|
+
/** Total underlying held, raw. */
|
|
20
|
+
totalAssets: bigint;
|
|
21
|
+
/** Total shares minted, raw. */
|
|
22
|
+
totalSupply: bigint;
|
|
23
|
+
/** 1e18-scaled exchange rate: 1 share → X underlying.
|
|
24
|
+
* Normalised regardless of share decimals. */
|
|
25
|
+
exchangeRate: bigint;
|
|
26
|
+
}
|
|
27
|
+
/** A self-contained slice of the multicall payload plus a parser
|
|
28
|
+
* that consumes exactly `calls.length` results. */
|
|
29
|
+
export interface SavingsReader {
|
|
30
|
+
calls: SavingsCall[];
|
|
31
|
+
/** ABI per call slot. `any[]` to accept `as const` fragments without
|
|
32
|
+
* per-call casting — the downstream multicall API is `any`-typed. */
|
|
33
|
+
abis: any[];
|
|
34
|
+
/** Returns `undefined` on parse failure so the orchestrator can
|
|
35
|
+
* skip the entry without poisoning the batch. */
|
|
36
|
+
parse: (slice: unknown[]) => SavingsOnChainState | undefined;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Safely coerce a multicall return cell to `bigint`. Failures surface
|
|
40
|
+
* as `undefined` so the parser can bail on the whole entry without
|
|
41
|
+
* poisoning the batch.
|
|
42
|
+
*/
|
|
43
|
+
export declare const toBigInt: (v: unknown) => bigint | undefined;
|
|
44
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/vaults/savings/readers/shared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,6DAA6D;AAC7D,eAAO,MAAM,OAAO,QAAa,CAAA;AAEjC;qEACqE;AACrE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,OAAO,EAAE,CAAA;CAC3B;AAED,kEAAkE;AAClE,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB;mDAC+C;IAC/C,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;oDACoD;AACpD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB;0EACsE;IAEtE,IAAI,EAAE,GAAG,EAAE,CAAA;IACX;sDACkD;IAClD,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,mBAAmB,GAAG,SAAS,CAAA;CAC7D;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,MAAM,GAAG,SAgB9C,CAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { YieldFetcher } from '../../yields/types';
|
|
2
|
+
import type { SavingsWithdrawalMode } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Static registry entry for a savings vault.
|
|
5
|
+
*
|
|
6
|
+
* Per-chain entries live in {@link SAVINGS_REGISTRY}. Each pins the
|
|
7
|
+
* on-chain identity (address, decimals), brand metadata, the
|
|
8
|
+
* withdrawal mechanism (drives UX), and a pointer to the existing
|
|
9
|
+
* intrinsic-yield fetcher whose APR is surfaced as `supplyRate`.
|
|
10
|
+
*
|
|
11
|
+
* No `reader` discriminant — every savings entry uses the same
|
|
12
|
+
* generic ERC-4626 reader. If a future entry diverges (e.g.
|
|
13
|
+
* rebasing-via-wrapper for srUSD), add a kind here and extend
|
|
14
|
+
* [`readers/`](./readers/).
|
|
15
|
+
*/
|
|
16
|
+
export interface SavingsRegistryEntry {
|
|
17
|
+
/** Share-token contract address, lowercased. */
|
|
18
|
+
address: string;
|
|
19
|
+
/** Underlying ERC-20 address, lowercased. */
|
|
20
|
+
underlying: string;
|
|
21
|
+
/** Share-token symbol — usually the on-chain `symbol()`. */
|
|
22
|
+
symbol: string;
|
|
23
|
+
/** Brand label (`Ethena`, `Sky`, `Maker`, …). */
|
|
24
|
+
brand: string;
|
|
25
|
+
/** Share decimals. Most are 18; Maple syrup* are 6. */
|
|
26
|
+
decimals: number;
|
|
27
|
+
/** Underlying ERC-20 decimals. Defaults to `decimals` when absent
|
|
28
|
+
* — every ERC-4626 vault except a handful keep share/underlying
|
|
29
|
+
* decimals aligned. yUSD breaks this (18-decimal shares over
|
|
30
|
+
* 6-decimal USDC) so it must set this explicitly. */
|
|
31
|
+
underlyingDecimals?: number;
|
|
32
|
+
/** True if the share token rebases. False for nearly every
|
|
33
|
+
* savings vault — the rebase lives on the underlying. */
|
|
34
|
+
isRebasing: boolean;
|
|
35
|
+
/** Whether deposits are permissionless. */
|
|
36
|
+
isMintable: boolean;
|
|
37
|
+
/** Mint entry — undefined ⇒ share token itself (ERC-4626
|
|
38
|
+
* `deposit/mint`). */
|
|
39
|
+
mintContract?: string;
|
|
40
|
+
/** Withdrawal mechanism. */
|
|
41
|
+
withdrawalMode: SavingsWithdrawalMode;
|
|
42
|
+
/** Fixed cooldown in seconds for `fixed-cooldown` mode. Pinned
|
|
43
|
+
* here; read on-chain if the precise governance-current value is
|
|
44
|
+
* needed. */
|
|
45
|
+
withdrawalCooldownSeconds?: number;
|
|
46
|
+
/** Existing intrinsic-yield fetcher whose APR is surfaced as
|
|
47
|
+
* `supplyRate`. Optional — `sDAI` for example has no dedicated
|
|
48
|
+
* fetcher today; entry still works, `supplyRate` defaults to 0. */
|
|
49
|
+
yieldFetcher?: YieldFetcher;
|
|
50
|
+
/** Key inside the yield fetcher's `YieldResult` to read. Yield
|
|
51
|
+
* fetchers return maps keyed by symbol or by a free-text label;
|
|
52
|
+
* this is the exact key. */
|
|
53
|
+
yieldKey?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Per-chain savings-vault allowlist. Assembled at module load from
|
|
57
|
+
* single-chain entries plus the expanded `MULTI_CHAIN_GROUPS`.
|
|
58
|
+
*
|
|
59
|
+
* See [TIMELOCKS_AND_CHAINS.md](./TIMELOCKS_AND_CHAINS.md) for the
|
|
60
|
+
* verification notes and
|
|
61
|
+
* [../lst/EXPANSION_PLAN.md](../lst/EXPANSION_PLAN.md) for the
|
|
62
|
+
* rollout order.
|
|
63
|
+
*/
|
|
64
|
+
export declare const SAVINGS_REGISTRY: {
|
|
65
|
+
[chainId: string]: SavingsRegistryEntry[];
|
|
66
|
+
};
|
|
67
|
+
/** Returns the registry entries for a chain, or `[]` when unsupported. */
|
|
68
|
+
export declare const getSavingsRegistry: (chainId: string) => SavingsRegistryEntry[];
|
|
69
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/vaults/savings/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAgBtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAA;IAChB;;;0DAGsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;8DAC0D;IAC1D,UAAU,EAAE,OAAO,CAAA;IACnB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAA;IACnB;2BACuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4BAA4B;IAC5B,cAAc,EAAE,qBAAqB,CAAA;IACrC;;kBAEc;IACd,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC;;wEAEoE;IACpE,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;iCAE6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA2UD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAAA;CAapE,CAAA;AAEN,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,oBAAoB,EACxC,CAAA"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { GenericCurrency } from '../../types/general';
|
|
2
|
+
import type { VaultClassificationFields } from '../classification';
|
|
3
|
+
/**
|
|
4
|
+
* Withdrawal mode for a savings vault. Drives UX: instant for plain
|
|
5
|
+
* ERC-4626 wrappers, fixed-cooldown for Ethena-style sUSDe, queued for
|
|
6
|
+
* Maple syrup pools, etc.
|
|
7
|
+
*
|
|
8
|
+
* Identical enumeration to `LstWithdrawalMode` from `vaults/lst/` —
|
|
9
|
+
* kept separate so the two providers can evolve independently without
|
|
10
|
+
* one provider's withdrawal taxonomy creep affecting the other.
|
|
11
|
+
*/
|
|
12
|
+
export type SavingsWithdrawalMode = 'instant' | 'fixed-cooldown' | 'queued' | 'request-based' | 'fee-or-queued';
|
|
13
|
+
/**
|
|
14
|
+
* Parsed savings-vault entry.
|
|
15
|
+
*
|
|
16
|
+
* Models ERC-4626 yield wrappers — sUSDe, sUSDS, sDAI, stUSD, sUSDF,
|
|
17
|
+
* siUSD, savUSD, syrupUSDC/USDT, wstUSR, yUSD, yoETH, … — under a
|
|
18
|
+
* uniform shape. Structurally compatible with
|
|
19
|
+
* [`buildVaultLookup`](../lookup.ts) (same load-bearing fields as
|
|
20
|
+
* `LstShareToken`, `FluidFToken`, `EulerEarnVault`).
|
|
21
|
+
*
|
|
22
|
+
* Most entries are real ERC-4626 (asset-keyed share token with
|
|
23
|
+
* `convertToAssets` / `totalAssets`). A few wrap a rebasing
|
|
24
|
+
* underlying (wstUSR, wsrUSD); those are still 4626 on the wrapper
|
|
25
|
+
* but their `asset()` returns a rebasing token, which downstream
|
|
26
|
+
* `priceUsd` math should be aware of.
|
|
27
|
+
*/
|
|
28
|
+
export interface SavingsVault extends VaultClassificationFields {
|
|
29
|
+
/** Share-token contract address, lowercased. */
|
|
30
|
+
address: string;
|
|
31
|
+
/** Underlying ERC-20 address, lowercased. */
|
|
32
|
+
underlying: string;
|
|
33
|
+
/** Share-token symbol, e.g. `sUSDe`, `sUSDS`, `sDAI`. */
|
|
34
|
+
symbol: string;
|
|
35
|
+
/** Share-token name as returned by `name()`, or a falsy-safe
|
|
36
|
+
* fallback `${brand} ${symbol}`. */
|
|
37
|
+
name: string;
|
|
38
|
+
/** Cross-provider UI label — `${brand} ${symbol}`
|
|
39
|
+
* (e.g. `Ethena sUSDe`, `Sky sUSDS`). Always non-empty. */
|
|
40
|
+
displayName: string;
|
|
41
|
+
/** Brand label — `Ethena`, `Sky`, `Maker`, `Angle`, `Falcon`, … */
|
|
42
|
+
brand: string;
|
|
43
|
+
/** Alias for `brand` to match `curatorName` on the other providers'
|
|
44
|
+
* vault types — keeps cross-provider UI code uniform. */
|
|
45
|
+
curatorName: string;
|
|
46
|
+
/** Share decimals (most are 18; Maple syrup* are 6). */
|
|
47
|
+
decimals: number;
|
|
48
|
+
/** Total underlying held, raw integer (wei-like) as string. From
|
|
49
|
+
* `totalAssets()`. */
|
|
50
|
+
totalAssets: string;
|
|
51
|
+
/** Total shares minted, raw integer as string. */
|
|
52
|
+
totalSupply: string;
|
|
53
|
+
/** Raw `convertToShares(10**decimals)` — 1 underlying → X shares. */
|
|
54
|
+
convertToShares: string;
|
|
55
|
+
/** Raw `convertToAssets(10**decimals)` — 1 share → X underlying. */
|
|
56
|
+
convertToAssets: string;
|
|
57
|
+
/** 1e18-scaled exchange rate: 1 share → X underlying. Derived from
|
|
58
|
+
* `convertToAssets(10**decimals)` regardless of share decimals. */
|
|
59
|
+
exchangeRate: string;
|
|
60
|
+
/** Supply APR in percent (e.g. `7.42` = 7.42 %). Sourced from the
|
|
61
|
+
* matching intrinsic-yield fetcher. */
|
|
62
|
+
supplyRate: number;
|
|
63
|
+
/** Extra rewards APR in percent — usually 0; populated when the
|
|
64
|
+
* protocol layers a separate reward stream on top. */
|
|
65
|
+
rewardsRate: number;
|
|
66
|
+
/** Sum of `supplyRate + rewardsRate` — what a depositor actually
|
|
67
|
+
* earns. */
|
|
68
|
+
depositRate: number;
|
|
69
|
+
/** Always true for this provider — every entry is ERC-4626. Kept
|
|
70
|
+
* for API parity with `LstShareToken.isErc4626`. */
|
|
71
|
+
isErc4626: true;
|
|
72
|
+
/** Whether the share token itself rebases. False for nearly every
|
|
73
|
+
* savings vault (they're the non-rebasing wrapper); rebasing
|
|
74
|
+
* surfaces sit on the underlying (e.g. USDe inside sUSDe). */
|
|
75
|
+
isRebasing: boolean;
|
|
76
|
+
/** Whether deposits are permissionless on-chain. False for entries
|
|
77
|
+
* whose mint surface is allowlist-gated. */
|
|
78
|
+
isMintable: boolean;
|
|
79
|
+
/** Mint entry — usually equals `address` (deposit on the share
|
|
80
|
+
* token directly via ERC-4626 `deposit`/`mint`). May differ for
|
|
81
|
+
* protocols with a dedicated minter / zap contract. */
|
|
82
|
+
mintContract?: string;
|
|
83
|
+
/** Withdrawal mechanism. */
|
|
84
|
+
withdrawalMode: SavingsWithdrawalMode;
|
|
85
|
+
/** Fixed cooldown in seconds for `fixed-cooldown` mode. Some
|
|
86
|
+
* protocols (Ethena, Avant) expose this on-chain via
|
|
87
|
+
* `cooldownDuration()`. Static value here pinned in the registry —
|
|
88
|
+
* re-read on-chain if you need the precise governance-current
|
|
89
|
+
* value. */
|
|
90
|
+
withdrawalCooldownSeconds?: number;
|
|
91
|
+
/** Hydrated asset metadata from the provided token list, if any. */
|
|
92
|
+
asset?: GenericCurrency;
|
|
93
|
+
/** USD price of one underlying unit, if prices were supplied. */
|
|
94
|
+
priceUsd?: number;
|
|
95
|
+
/** Human-formatted total assets (`totalAssets / 10**decimals`). */
|
|
96
|
+
totalAssetsFormatted: number;
|
|
97
|
+
/** Human-formatted total assets in USD. */
|
|
98
|
+
totalAssetsUsd: number;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Full parsed payload: per-share-token-address map.
|
|
102
|
+
*
|
|
103
|
+
* Keyed by lowercased share-token address (parity with Morpho / Silo
|
|
104
|
+
* / Euler-Earn / LST). Many savings vaults share the same underlying
|
|
105
|
+
* (sUSDS and sDAI both wrap stable-ish ERC-20s, syrupUSDC wraps USDC,
|
|
106
|
+
* etc.) so per-share-address keying is the only sensible choice.
|
|
107
|
+
*/
|
|
108
|
+
export type SavingsVaults = {
|
|
109
|
+
[shareAddress: string]: SavingsVault;
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +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;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAAA;CACrC,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SavingsRegistryEntry } from './registry';
|
|
2
|
+
/**
|
|
3
|
+
* Runs every yield source referenced by a savings-registry slice and
|
|
4
|
+
* returns a flat `address → apr%` map.
|
|
5
|
+
*
|
|
6
|
+
* Dedups by `YieldFetcher` reference — protocols whose fetcher
|
|
7
|
+
* returns multiple keys (Angle stUSD + stEUR, Sky sUSDS + stUSDS,
|
|
8
|
+
* Maple syrupUSDC + syrupUSDT) only invoke the upstream once.
|
|
9
|
+
*
|
|
10
|
+
* Mirrors the `lst/yieldBinding.ts` pattern. No protocol-specific
|
|
11
|
+
* composition needed for this provider — every savings entry's APR is
|
|
12
|
+
* a direct fetcher-key lookup.
|
|
13
|
+
*
|
|
14
|
+
* Returns `{ [shareAddressLowercase]: aprPercent }`. Missing keys
|
|
15
|
+
* become `0` downstream — never `undefined` — so the parser doesn't
|
|
16
|
+
* have to branch.
|
|
17
|
+
*/
|
|
18
|
+
export declare const resolveYieldApr: (entries: SavingsRegistryEntry[]) => Promise<Record<string, number>>;
|
|
19
|
+
//# sourceMappingURL=yieldBinding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yieldBinding.d.ts","sourceRoot":"","sources":["../../../src/vaults/savings/yieldBinding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,oBAAoB,EAAE,KAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBhC,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GenericCurrency } from '../../types/general';
|
|
2
|
+
import type { VaultClassificationFields } from '../classification';
|
|
2
3
|
/**
|
|
3
4
|
* Parsed Silo vault entry.
|
|
4
5
|
*
|
|
@@ -13,7 +14,7 @@ import { GenericCurrency } from '../../types/general';
|
|
|
13
14
|
* share an underlying (different curators / strategies), so the map is
|
|
14
15
|
* keyed by vault address like `MorphoVaults`.
|
|
15
16
|
*/
|
|
16
|
-
export interface SiloVault {
|
|
17
|
+
export interface SiloVault extends VaultClassificationFields {
|
|
17
18
|
/** Vault (share-token) contract address, lowercased. */
|
|
18
19
|
address: string;
|
|
19
20
|
/** Lowercased underlying ERC20 address. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vaults/silo/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vaults/silo/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAElE;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,SAAU,SAAQ,yBAAyB;IAC1D,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;IACd;gCAC4B;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ;;;kDAG8C;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAA;IAChB,uDAAuD;IACvD,eAAe,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;IACrC,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAElB;;mFAE+E;IAC/E,WAAW,EAAE,MAAM,CAAA;IACnB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAA;IAEnB;4EACwE;IACxE,UAAU,EAAE,MAAM,CAAA;IAClB;iFAC6E;IAC7E,SAAS,EAAE,MAAM,CAAA;IACjB;iEAC6D;IAC7D,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAA;IAEnB,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAA;IACX,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAA;IAChB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;4EAGwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAA;IAC5B;iCAC6B;IAC7B,cAAc,EAAE,MAAM,CAAA;IAEtB;;;kDAG8C;IAC9C,SAAS,EAAE,MAAM,CAAA;IACjB,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,kDAAkD;AAClD,MAAM,MAAM,UAAU,GAAG;IACvB,yCAAyC;IACzC,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/** One recorded share-price sample for a vault. */
|
|
2
|
+
export interface VaultYieldSnapshot {
|
|
3
|
+
/** Unix seconds when the sample was taken. */
|
|
4
|
+
t: number;
|
|
5
|
+
/** Raw `convertToAssets(1e18)` share price at `t`, as a string. */
|
|
6
|
+
p: string;
|
|
7
|
+
}
|
|
8
|
+
/** Per-vault time series, keyed by lowercased address. */
|
|
9
|
+
export type VaultYieldSeries = {
|
|
10
|
+
[address: string]: VaultYieldSnapshot[];
|
|
11
|
+
};
|
|
12
|
+
export interface VaultAprResult {
|
|
13
|
+
/** Annualised realised return from share-price growth (e.g. 0.043 = 4.3%). */
|
|
14
|
+
apr: number;
|
|
15
|
+
/** Share price at the latest sample. */
|
|
16
|
+
sharePriceNow: string;
|
|
17
|
+
/** Share price at the lookback sample used. */
|
|
18
|
+
sharePriceThen: string;
|
|
19
|
+
/** Seconds between the two samples used. */
|
|
20
|
+
windowSeconds: number;
|
|
21
|
+
/** Number of samples in the series. */
|
|
22
|
+
samples: number;
|
|
23
|
+
}
|
|
24
|
+
export interface AppendSnapshotOptions {
|
|
25
|
+
/** Max ring length — oldest samples drop off. Default 90. */
|
|
26
|
+
maxPoints?: number;
|
|
27
|
+
/** Skip the append if the last sample is newer than this. Default 0
|
|
28
|
+
* (always append). Gates the ring to a sane cadence regardless of how
|
|
29
|
+
* often the recorder fires. */
|
|
30
|
+
minIntervalSeconds?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Append a sample to a vault's ring buffer, dropping the oldest beyond
|
|
34
|
+
* `maxPoints` and skipping samples that arrive sooner than
|
|
35
|
+
* `minIntervalSeconds` after the last one. Pure — returns a new array.
|
|
36
|
+
*/
|
|
37
|
+
export declare const appendSnapshot: (points: VaultYieldSnapshot[], snap: VaultYieldSnapshot, options?: AppendSnapshotOptions) => VaultYieldSnapshot[];
|
|
38
|
+
export interface ComputeVaultAprOptions {
|
|
39
|
+
/** Target lookback window. Default 7. The sample closest to
|
|
40
|
+
* `now − windowDays` (and strictly before `now`) is used as the base. */
|
|
41
|
+
windowDays?: number;
|
|
42
|
+
/** Require at least this much elapsed between the two samples, else
|
|
43
|
+
* return `undefined` (a window too short makes the annualised figure
|
|
44
|
+
* meaningless). Default 1 hour. */
|
|
45
|
+
minWindowSeconds?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Annualise a vault's realised return from its recorded share-price
|
|
49
|
+
* series:
|
|
50
|
+
*
|
|
51
|
+
* apr = (priceNow / priceThen − 1) × (yearSeconds / elapsedSeconds)
|
|
52
|
+
*
|
|
53
|
+
* `priceNow` is the latest sample; `priceThen` is the sample closest to
|
|
54
|
+
* `now − windowDays`. The ratio is computed in bigint (scaled by 1e18)
|
|
55
|
+
* to preserve the small per-day growth that double precision would lose
|
|
56
|
+
* on ~1e18-scale prices.
|
|
57
|
+
*
|
|
58
|
+
* Returns `undefined` when there aren't two usable samples or the window
|
|
59
|
+
* is shorter than `minWindowSeconds`.
|
|
60
|
+
*/
|
|
61
|
+
export declare const computeVaultApr: (points: VaultYieldSnapshot[], options?: ComputeVaultAprOptions) => VaultAprResult | undefined;
|
|
62
|
+
//# sourceMappingURL=annualize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annualize.d.ts","sourceRoot":"","sources":["../../../src/vaults/yield/annualize.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAA;IACT,mEAAmE;IACnE,CAAC,EAAE,MAAM,CAAA;CACV;AAED,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAA;CAAE,CAAA;AAE1E,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAA;IACX,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAA;IACtB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAA;IACrB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAA;CAChB;AAKD,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;oCAEgC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,kBAAkB,EAAE,EAC5B,MAAM,kBAAkB,EACxB,UAAU,qBAAqB,KAC9B,kBAAkB,EAOpB,CAAA;AAED,MAAM,WAAW,sBAAsB;IACrC;8EAC0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;wCAEoC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,kBAAkB,EAAE,EAC5B,UAAU,sBAAsB,KAC/B,cAAc,GAAG,SAoCnB,CAAA"}
|