@1delta/margin-fetcher 0.0.265 → 0.0.267

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/dist/ccip-XQNAHYUN.js +5 -0
  2. package/dist/{ccip-SQXTDOS7.js.map → ccip-XQNAHYUN.js.map} +1 -1
  3. package/dist/{chunk-KQ6K6D2V.js → chunk-H6U3H7VY.js} +4 -4
  4. package/dist/{chunk-KQ6K6D2V.js.map → chunk-H6U3H7VY.js.map} +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +9297 -331
  8. package/dist/index.js.map +1 -1
  9. package/dist/lending/dolomite-subgraph.d.ts +11 -0
  10. package/dist/lending/dolomite-subgraph.d.ts.map +1 -0
  11. package/dist/lending/public-data/dolomite/emodeConfig.d.ts +45 -0
  12. package/dist/lending/public-data/dolomite/emodeConfig.d.ts.map +1 -0
  13. package/dist/lending/public-data/dolomite/fetchFromSubgraph.d.ts +56 -0
  14. package/dist/lending/public-data/dolomite/fetchFromSubgraph.d.ts.map +1 -0
  15. package/dist/lending/public-data/dolomite/publicCallBuild.d.ts +19 -0
  16. package/dist/lending/public-data/dolomite/publicCallBuild.d.ts.map +1 -0
  17. package/dist/lending/public-data/dolomite/publicCallParse.d.ts +23 -0
  18. package/dist/lending/public-data/dolomite/publicCallParse.d.ts.map +1 -0
  19. package/dist/lending/public-data/fetchLender.d.ts.map +1 -1
  20. package/dist/lending/public-data/fetchLenderAll.d.ts.map +1 -1
  21. package/dist/lending/public-data/fetchLenderExt.d.ts.map +1 -1
  22. package/dist/lending/user-data/abis.d.ts.map +1 -1
  23. package/dist/lending/user-data/dolomite/userCallBuild.d.ts +21 -0
  24. package/dist/lending/user-data/dolomite/userCallBuild.d.ts.map +1 -0
  25. package/dist/lending/user-data/dolomite/userCallParse.d.ts +15 -0
  26. package/dist/lending/user-data/dolomite/userCallParse.d.ts.map +1 -0
  27. package/dist/lending/user-data/fetch-balances/parse.d.ts.map +1 -1
  28. package/dist/lending/user-data/fetch-balances/prepare.d.ts.map +1 -1
  29. package/dist/prices/oracle-prices/fetchOraclePrices.d.ts.map +1 -1
  30. package/dist/prices/oracle-prices/fetchers/dolomite.d.ts +297 -0
  31. package/dist/prices/oracle-prices/fetchers/dolomite.d.ts.map +1 -0
  32. package/dist/prices/oracle-prices/fetchers/index.d.ts +1 -0
  33. package/dist/prices/oracle-prices/fetchers/index.d.ts.map +1 -1
  34. package/dist/utils/index.d.ts +1 -1
  35. package/dist/utils/index.d.ts.map +1 -1
  36. package/dist/utils/marketName.d.ts.map +1 -1
  37. package/dist/vaults/classification.d.ts +78 -0
  38. package/dist/vaults/classification.d.ts.map +1 -0
  39. package/dist/vaults/euler-earn/types.d.ts +2 -1
  40. package/dist/vaults/euler-earn/types.d.ts.map +1 -1
  41. package/dist/vaults/fetchVaultsAll.d.ts +25 -1
  42. package/dist/vaults/fetchVaultsAll.d.ts.map +1 -1
  43. package/dist/vaults/fluid/types.d.ts +2 -1
  44. package/dist/vaults/fluid/types.d.ts.map +1 -1
  45. package/dist/vaults/gearbox/types.d.ts +2 -1
  46. package/dist/vaults/gearbox/types.d.ts.map +1 -1
  47. package/dist/vaults/gmx/abis.d.ts +590 -0
  48. package/dist/vaults/gmx/abis.d.ts.map +1 -0
  49. package/dist/vaults/gmx/api.d.ts +54 -0
  50. package/dist/vaults/gmx/api.d.ts.map +1 -0
  51. package/dist/vaults/gmx/contracts.d.ts +20 -0
  52. package/dist/vaults/gmx/contracts.d.ts.map +1 -0
  53. package/dist/vaults/gmx/fetchPublic.d.ts +21 -0
  54. package/dist/vaults/gmx/fetchPublic.d.ts.map +1 -0
  55. package/dist/vaults/gmx/fetchUser.d.ts +19 -0
  56. package/dist/vaults/gmx/fetchUser.d.ts.map +1 -0
  57. package/dist/vaults/gmx/index.d.ts +9 -0
  58. package/dist/vaults/gmx/index.d.ts.map +1 -0
  59. package/dist/vaults/gmx/keys.d.ts +25 -0
  60. package/dist/vaults/gmx/keys.d.ts.map +1 -0
  61. package/dist/vaults/gmx/pricing.d.ts +52 -0
  62. package/dist/vaults/gmx/pricing.d.ts.map +1 -0
  63. package/dist/vaults/gmx/registry.d.ts +13 -0
  64. package/dist/vaults/gmx/registry.d.ts.map +1 -0
  65. package/dist/vaults/gmx/types.d.ts +155 -0
  66. package/dist/vaults/gmx/types.d.ts.map +1 -0
  67. package/dist/vaults/hypercore/fetchPublic.d.ts +13 -0
  68. package/dist/vaults/hypercore/fetchPublic.d.ts.map +1 -0
  69. package/dist/vaults/hypercore/fetchUser.d.ts +18 -0
  70. package/dist/vaults/hypercore/fetchUser.d.ts.map +1 -0
  71. package/dist/vaults/hypercore/index.d.ts +5 -0
  72. package/dist/vaults/hypercore/index.d.ts.map +1 -0
  73. package/dist/vaults/hypercore/registry.d.ts +19 -0
  74. package/dist/vaults/hypercore/registry.d.ts.map +1 -0
  75. package/dist/vaults/hypercore/types.d.ts +80 -0
  76. package/dist/vaults/hypercore/types.d.ts.map +1 -0
  77. package/dist/vaults/index.d.ts +8 -0
  78. package/dist/vaults/index.d.ts.map +1 -1
  79. package/dist/vaults/interfaceKind.d.ts +33 -0
  80. package/dist/vaults/interfaceKind.d.ts.map +1 -0
  81. package/dist/vaults/lagoon/api.d.ts +67 -0
  82. package/dist/vaults/lagoon/api.d.ts.map +1 -0
  83. package/dist/vaults/lagoon/fetchPublic.d.ts +19 -0
  84. package/dist/vaults/lagoon/fetchPublic.d.ts.map +1 -0
  85. package/dist/vaults/lagoon/index.d.ts +4 -0
  86. package/dist/vaults/lagoon/index.d.ts.map +1 -0
  87. package/dist/vaults/lagoon/types.d.ts +104 -0
  88. package/dist/vaults/lagoon/types.d.ts.map +1 -0
  89. package/dist/vaults/lookup.d.ts +20 -0
  90. package/dist/vaults/lookup.d.ts.map +1 -1
  91. package/dist/vaults/lst/abis/ankr.d.ts +14 -0
  92. package/dist/vaults/lst/abis/ankr.d.ts.map +1 -0
  93. package/dist/vaults/lst/abis/beets.d.ts +21 -0
  94. package/dist/vaults/lst/abis/beets.d.ts.map +1 -0
  95. package/dist/vaults/lst/abis/benqi.d.ts +25 -0
  96. package/dist/vaults/lst/abis/benqi.d.ts.map +1 -0
  97. package/dist/vaults/lst/abis/core.d.ts +27 -0
  98. package/dist/vaults/lst/abis/core.d.ts.map +1 -0
  99. package/dist/vaults/lst/abis/dinero.d.ts +16 -0
  100. package/dist/vaults/lst/abis/dinero.d.ts.map +1 -0
  101. package/dist/vaults/lst/abis/etherfi.d.ts +21 -0
  102. package/dist/vaults/lst/abis/etherfi.d.ts.map +1 -0
  103. package/dist/vaults/lst/abis/hyperbeat.d.ts +17 -0
  104. package/dist/vaults/lst/abis/hyperbeat.d.ts.map +1 -0
  105. package/dist/vaults/lst/abis/index.d.ts +32 -0
  106. package/dist/vaults/lst/abis/index.d.ts.map +1 -0
  107. package/dist/vaults/lst/abis/kelp.d.ts +11 -0
  108. package/dist/vaults/lst/abis/kelp.d.ts.map +1 -0
  109. package/dist/vaults/lst/abis/kinetiq.d.ts +16 -0
  110. package/dist/vaults/lst/abis/kinetiq.d.ts.map +1 -0
  111. package/dist/vaults/lst/abis/lair.d.ts +25 -0
  112. package/dist/vaults/lst/abis/lair.d.ts.map +1 -0
  113. package/dist/vaults/lst/abis/lido.d.ts +11 -0
  114. package/dist/vaults/lst/abis/lido.d.ts.map +1 -0
  115. package/dist/vaults/lst/abis/lista.d.ts +28 -0
  116. package/dist/vaults/lst/abis/lista.d.ts.map +1 -0
  117. package/dist/vaults/lst/abis/mantle.d.ts +15 -0
  118. package/dist/vaults/lst/abis/mantle.d.ts.map +1 -0
  119. package/dist/vaults/lst/abis/renzo.d.ts +17 -0
  120. package/dist/vaults/lst/abis/renzo.d.ts.map +1 -0
  121. package/dist/vaults/lst/abis/rocketpool.d.ts +29 -0
  122. package/dist/vaults/lst/abis/rocketpool.d.ts.map +1 -0
  123. package/dist/vaults/lst/abis/shared.d.ts +57 -0
  124. package/dist/vaults/lst/abis/shared.d.ts.map +1 -0
  125. package/dist/vaults/lst/abis/stader.d.ts +34 -0
  126. package/dist/vaults/lst/abis/stader.d.ts.map +1 -0
  127. package/dist/vaults/lst/abis/stakewise.d.ts +16 -0
  128. package/dist/vaults/lst/abis/stakewise.d.ts.map +1 -0
  129. package/dist/vaults/lst/abis/stcelo.d.ts +17 -0
  130. package/dist/vaults/lst/abis/stcelo.d.ts.map +1 -0
  131. package/dist/vaults/lst/abis/stella.d.ts +30 -0
  132. package/dist/vaults/lst/abis/stella.d.ts.map +1 -0
  133. package/dist/vaults/lst/abis/swell.d.ts +13 -0
  134. package/dist/vaults/lst/abis/swell.d.ts.map +1 -0
  135. package/dist/vaults/lst/abis/valantis.d.ts +13 -0
  136. package/dist/vaults/lst/abis/valantis.d.ts.map +1 -0
  137. package/dist/vaults/lst/abis/veda.d.ts +14 -0
  138. package/dist/vaults/lst/abis/veda.d.ts.map +1 -0
  139. package/dist/vaults/lst/coreValidators.d.ts +16 -0
  140. package/dist/vaults/lst/coreValidators.d.ts.map +1 -0
  141. package/dist/vaults/lst/fetchPublic.d.ts +25 -0
  142. package/dist/vaults/lst/fetchPublic.d.ts.map +1 -0
  143. package/dist/vaults/lst/index.d.ts +6 -0
  144. package/dist/vaults/lst/index.d.ts.map +1 -0
  145. package/dist/vaults/lst/readers/ankr.d.ts +16 -0
  146. package/dist/vaults/lst/readers/ankr.d.ts.map +1 -0
  147. package/dist/vaults/lst/readers/beets.d.ts +16 -0
  148. package/dist/vaults/lst/readers/beets.d.ts.map +1 -0
  149. package/dist/vaults/lst/readers/benqi.d.ts +16 -0
  150. package/dist/vaults/lst/readers/benqi.d.ts.map +1 -0
  151. package/dist/vaults/lst/readers/bgtWrapper.d.ts +14 -0
  152. package/dist/vaults/lst/readers/bgtWrapper.d.ts.map +1 -0
  153. package/dist/vaults/lst/readers/core.d.ts +22 -0
  154. package/dist/vaults/lst/readers/core.d.ts.map +1 -0
  155. package/dist/vaults/lst/readers/dinero.d.ts +14 -0
  156. package/dist/vaults/lst/readers/dinero.d.ts.map +1 -0
  157. package/dist/vaults/lst/readers/erc4626.d.ts +23 -0
  158. package/dist/vaults/lst/readers/erc4626.d.ts.map +1 -0
  159. package/dist/vaults/lst/readers/etherfi.d.ts +15 -0
  160. package/dist/vaults/lst/readers/etherfi.d.ts.map +1 -0
  161. package/dist/vaults/lst/readers/hyperbeat.d.ts +17 -0
  162. package/dist/vaults/lst/readers/hyperbeat.d.ts.map +1 -0
  163. package/dist/vaults/lst/readers/index.d.ts +22 -0
  164. package/dist/vaults/lst/readers/index.d.ts.map +1 -0
  165. package/dist/vaults/lst/readers/kelp.d.ts +13 -0
  166. package/dist/vaults/lst/readers/kelp.d.ts.map +1 -0
  167. package/dist/vaults/lst/readers/kinetiq.d.ts +17 -0
  168. package/dist/vaults/lst/readers/kinetiq.d.ts.map +1 -0
  169. package/dist/vaults/lst/readers/lair.d.ts +16 -0
  170. package/dist/vaults/lst/readers/lair.d.ts.map +1 -0
  171. package/dist/vaults/lst/readers/lido.d.ts +12 -0
  172. package/dist/vaults/lst/readers/lido.d.ts.map +1 -0
  173. package/dist/vaults/lst/readers/lista.d.ts +17 -0
  174. package/dist/vaults/lst/readers/lista.d.ts.map +1 -0
  175. package/dist/vaults/lst/readers/mantle.d.ts +14 -0
  176. package/dist/vaults/lst/readers/mantle.d.ts.map +1 -0
  177. package/dist/vaults/lst/readers/offChain.d.ts +11 -0
  178. package/dist/vaults/lst/readers/offChain.d.ts.map +1 -0
  179. package/dist/vaults/lst/readers/renzo.d.ts +19 -0
  180. package/dist/vaults/lst/readers/renzo.d.ts.map +1 -0
  181. package/dist/vaults/lst/readers/rocketpool.d.ts +17 -0
  182. package/dist/vaults/lst/readers/rocketpool.d.ts.map +1 -0
  183. package/dist/vaults/lst/readers/shared.d.ts +65 -0
  184. package/dist/vaults/lst/readers/shared.d.ts.map +1 -0
  185. package/dist/vaults/lst/readers/stader.d.ts +34 -0
  186. package/dist/vaults/lst/readers/stader.d.ts.map +1 -0
  187. package/dist/vaults/lst/readers/stakewise.d.ts +14 -0
  188. package/dist/vaults/lst/readers/stakewise.d.ts.map +1 -0
  189. package/dist/vaults/lst/readers/stcelo.d.ts +15 -0
  190. package/dist/vaults/lst/readers/stcelo.d.ts.map +1 -0
  191. package/dist/vaults/lst/readers/stella.d.ts +18 -0
  192. package/dist/vaults/lst/readers/stella.d.ts.map +1 -0
  193. package/dist/vaults/lst/readers/swell.d.ts +13 -0
  194. package/dist/vaults/lst/readers/swell.d.ts.map +1 -0
  195. package/dist/vaults/lst/readers/valantis.d.ts +15 -0
  196. package/dist/vaults/lst/readers/valantis.d.ts.map +1 -0
  197. package/dist/vaults/lst/readers/veda.d.ts +19 -0
  198. package/dist/vaults/lst/readers/veda.d.ts.map +1 -0
  199. package/dist/vaults/lst/registry.d.ts +135 -0
  200. package/dist/vaults/lst/registry.d.ts.map +1 -0
  201. package/dist/vaults/lst/types.d.ts +133 -0
  202. package/dist/vaults/lst/types.d.ts.map +1 -0
  203. package/dist/vaults/lst/withdrawals/abis/beets.d.ts +51 -0
  204. package/dist/vaults/lst/withdrawals/abis/beets.d.ts.map +1 -0
  205. package/dist/vaults/lst/withdrawals/abis/behype.d.ts +52 -0
  206. package/dist/vaults/lst/withdrawals/abis/behype.d.ts.map +1 -0
  207. package/dist/vaults/lst/withdrawals/abis/benqi.d.ts +55 -0
  208. package/dist/vaults/lst/withdrawals/abis/benqi.d.ts.map +1 -0
  209. package/dist/vaults/lst/withdrawals/abis/berapaw.d.ts +33 -0
  210. package/dist/vaults/lst/withdrawals/abis/berapaw.d.ts.map +1 -0
  211. package/dist/vaults/lst/withdrawals/abis/erc7540.d.ts +50 -0
  212. package/dist/vaults/lst/withdrawals/abis/erc7540.d.ts.map +1 -0
  213. package/dist/vaults/lst/withdrawals/abis/ethena.d.ts +25 -0
  214. package/dist/vaults/lst/withdrawals/abis/ethena.d.ts.map +1 -0
  215. package/dist/vaults/lst/withdrawals/abis/etherfi.d.ts +70 -0
  216. package/dist/vaults/lst/withdrawals/abis/etherfi.d.ts.map +1 -0
  217. package/dist/vaults/lst/withdrawals/abis/ibera.d.ts +52 -0
  218. package/dist/vaults/lst/withdrawals/abis/ibera.d.ts.map +1 -0
  219. package/dist/vaults/lst/withdrawals/abis/index.d.ts +24 -0
  220. package/dist/vaults/lst/withdrawals/abis/index.d.ts.map +1 -0
  221. package/dist/vaults/lst/withdrawals/abis/kelp.d.ts +46 -0
  222. package/dist/vaults/lst/withdrawals/abis/kelp.d.ts.map +1 -0
  223. package/dist/vaults/lst/withdrawals/abis/kinetiq.d.ts +59 -0
  224. package/dist/vaults/lst/withdrawals/abis/kinetiq.d.ts.map +1 -0
  225. package/dist/vaults/lst/withdrawals/abis/lido.d.ts +53 -0
  226. package/dist/vaults/lst/withdrawals/abis/lido.d.ts.map +1 -0
  227. package/dist/vaults/lst/withdrawals/abis/lista.d.ts +47 -0
  228. package/dist/vaults/lst/withdrawals/abis/lista.d.ts.map +1 -0
  229. package/dist/vaults/lst/withdrawals/abis/mantle.d.ts +54 -0
  230. package/dist/vaults/lst/withdrawals/abis/mantle.d.ts.map +1 -0
  231. package/dist/vaults/lst/withdrawals/abis/primestaking.d.ts +57 -0
  232. package/dist/vaults/lst/withdrawals/abis/primestaking.d.ts.map +1 -0
  233. package/dist/vaults/lst/withdrawals/abis/puffer.d.ts +48 -0
  234. package/dist/vaults/lst/withdrawals/abis/puffer.d.ts.map +1 -0
  235. package/dist/vaults/lst/withdrawals/abis/renzo.d.ts +50 -0
  236. package/dist/vaults/lst/withdrawals/abis/renzo.d.ts.map +1 -0
  237. package/dist/vaults/lst/withdrawals/abis/staderEthx.d.ts +48 -0
  238. package/dist/vaults/lst/withdrawals/abis/staderEthx.d.ts.map +1 -0
  239. package/dist/vaults/lst/withdrawals/abis/staderMaticx.d.ts +50 -0
  240. package/dist/vaults/lst/withdrawals/abis/staderMaticx.d.ts.map +1 -0
  241. package/dist/vaults/lst/withdrawals/abis/stakewise.d.ts +47 -0
  242. package/dist/vaults/lst/withdrawals/abis/stakewise.d.ts.map +1 -0
  243. package/dist/vaults/lst/withdrawals/abis/stcelo.d.ts +24 -0
  244. package/dist/vaults/lst/withdrawals/abis/stcelo.d.ts.map +1 -0
  245. package/dist/vaults/lst/withdrawals/abis/stella.d.ts +25 -0
  246. package/dist/vaults/lst/withdrawals/abis/stella.d.ts.map +1 -0
  247. package/dist/vaults/lst/withdrawals/abis/swell.d.ts +66 -0
  248. package/dist/vaults/lst/withdrawals/abis/swell.d.ts.map +1 -0
  249. package/dist/vaults/lst/withdrawals/abis/trufin.d.ts +43 -0
  250. package/dist/vaults/lst/withdrawals/abis/trufin.d.ts.map +1 -0
  251. package/dist/vaults/lst/withdrawals/abis/valantis.d.ts +46 -0
  252. package/dist/vaults/lst/withdrawals/abis/valantis.d.ts.map +1 -0
  253. package/dist/vaults/lst/withdrawals/abis/yieldnest.d.ts +65 -0
  254. package/dist/vaults/lst/withdrawals/abis/yieldnest.d.ts.map +1 -0
  255. package/dist/vaults/lst/withdrawals/fetchPublic.d.ts +53 -0
  256. package/dist/vaults/lst/withdrawals/fetchPublic.d.ts.map +1 -0
  257. package/dist/vaults/lst/withdrawals/index.d.ts +5 -0
  258. package/dist/vaults/lst/withdrawals/index.d.ts.map +1 -0
  259. package/dist/vaults/lst/withdrawals/readers/beets.d.ts +13 -0
  260. package/dist/vaults/lst/withdrawals/readers/beets.d.ts.map +1 -0
  261. package/dist/vaults/lst/withdrawals/readers/behype.d.ts +15 -0
  262. package/dist/vaults/lst/withdrawals/readers/behype.d.ts.map +1 -0
  263. package/dist/vaults/lst/withdrawals/readers/benqi.d.ts +15 -0
  264. package/dist/vaults/lst/withdrawals/readers/benqi.d.ts.map +1 -0
  265. package/dist/vaults/lst/withdrawals/readers/berapaw.d.ts +13 -0
  266. package/dist/vaults/lst/withdrawals/readers/berapaw.d.ts.map +1 -0
  267. package/dist/vaults/lst/withdrawals/readers/empty.d.ts +21 -0
  268. package/dist/vaults/lst/withdrawals/readers/empty.d.ts.map +1 -0
  269. package/dist/vaults/lst/withdrawals/readers/erc7540.d.ts +22 -0
  270. package/dist/vaults/lst/withdrawals/readers/erc7540.d.ts.map +1 -0
  271. package/dist/vaults/lst/withdrawals/readers/ethenaCooldown.d.ts +13 -0
  272. package/dist/vaults/lst/withdrawals/readers/ethenaCooldown.d.ts.map +1 -0
  273. package/dist/vaults/lst/withdrawals/readers/etherfi.d.ts +13 -0
  274. package/dist/vaults/lst/withdrawals/readers/etherfi.d.ts.map +1 -0
  275. package/dist/vaults/lst/withdrawals/readers/ibera.d.ts +3 -0
  276. package/dist/vaults/lst/withdrawals/readers/ibera.d.ts.map +1 -0
  277. package/dist/vaults/lst/withdrawals/readers/index.d.ts +7 -0
  278. package/dist/vaults/lst/withdrawals/readers/index.d.ts.map +1 -0
  279. package/dist/vaults/lst/withdrawals/readers/kelp.d.ts +21 -0
  280. package/dist/vaults/lst/withdrawals/readers/kelp.d.ts.map +1 -0
  281. package/dist/vaults/lst/withdrawals/readers/kinetiq.d.ts +13 -0
  282. package/dist/vaults/lst/withdrawals/readers/kinetiq.d.ts.map +1 -0
  283. package/dist/vaults/lst/withdrawals/readers/lair.d.ts +23 -0
  284. package/dist/vaults/lst/withdrawals/readers/lair.d.ts.map +1 -0
  285. package/dist/vaults/lst/withdrawals/readers/lido.d.ts +16 -0
  286. package/dist/vaults/lst/withdrawals/readers/lido.d.ts.map +1 -0
  287. package/dist/vaults/lst/withdrawals/readers/lista.d.ts +18 -0
  288. package/dist/vaults/lst/withdrawals/readers/lista.d.ts.map +1 -0
  289. package/dist/vaults/lst/withdrawals/readers/mantle.d.ts +18 -0
  290. package/dist/vaults/lst/withdrawals/readers/mantle.d.ts.map +1 -0
  291. package/dist/vaults/lst/withdrawals/readers/primestaking.d.ts +3 -0
  292. package/dist/vaults/lst/withdrawals/readers/primestaking.d.ts.map +1 -0
  293. package/dist/vaults/lst/withdrawals/readers/puffer.d.ts +17 -0
  294. package/dist/vaults/lst/withdrawals/readers/puffer.d.ts.map +1 -0
  295. package/dist/vaults/lst/withdrawals/readers/renzo.d.ts +16 -0
  296. package/dist/vaults/lst/withdrawals/readers/renzo.d.ts.map +1 -0
  297. package/dist/vaults/lst/withdrawals/readers/shared.d.ts +56 -0
  298. package/dist/vaults/lst/withdrawals/readers/shared.d.ts.map +1 -0
  299. package/dist/vaults/lst/withdrawals/readers/staderEthx.d.ts +15 -0
  300. package/dist/vaults/lst/withdrawals/readers/staderEthx.d.ts.map +1 -0
  301. package/dist/vaults/lst/withdrawals/readers/staderMaticx.d.ts +18 -0
  302. package/dist/vaults/lst/withdrawals/readers/staderMaticx.d.ts.map +1 -0
  303. package/dist/vaults/lst/withdrawals/readers/stakewise.d.ts +26 -0
  304. package/dist/vaults/lst/withdrawals/readers/stakewise.d.ts.map +1 -0
  305. package/dist/vaults/lst/withdrawals/readers/stcelo.d.ts +16 -0
  306. package/dist/vaults/lst/withdrawals/readers/stcelo.d.ts.map +1 -0
  307. package/dist/vaults/lst/withdrawals/readers/stella.d.ts +17 -0
  308. package/dist/vaults/lst/withdrawals/readers/stella.d.ts.map +1 -0
  309. package/dist/vaults/lst/withdrawals/readers/swell.d.ts +18 -0
  310. package/dist/vaults/lst/withdrawals/readers/swell.d.ts.map +1 -0
  311. package/dist/vaults/lst/withdrawals/readers/trufin.d.ts +19 -0
  312. package/dist/vaults/lst/withdrawals/readers/trufin.d.ts.map +1 -0
  313. package/dist/vaults/lst/withdrawals/readers/valantis.d.ts +11 -0
  314. package/dist/vaults/lst/withdrawals/readers/valantis.d.ts.map +1 -0
  315. package/dist/vaults/lst/withdrawals/readers/yieldnest.d.ts +11 -0
  316. package/dist/vaults/lst/withdrawals/readers/yieldnest.d.ts.map +1 -0
  317. package/dist/vaults/lst/withdrawals/registry.d.ts +46 -0
  318. package/dist/vaults/lst/withdrawals/registry.d.ts.map +1 -0
  319. package/dist/vaults/lst/withdrawals/types.d.ts +74 -0
  320. package/dist/vaults/lst/withdrawals/types.d.ts.map +1 -0
  321. package/dist/vaults/lst/yieldBinding.d.ts +26 -0
  322. package/dist/vaults/lst/yieldBinding.d.ts.map +1 -0
  323. package/dist/vaults/morpho/types.d.ts +2 -1
  324. package/dist/vaults/morpho/types.d.ts.map +1 -1
  325. package/dist/vaults/savings/abis/index.d.ts +12 -0
  326. package/dist/vaults/savings/abis/index.d.ts.map +1 -0
  327. package/dist/vaults/savings/abis/shared.d.ts +33 -0
  328. package/dist/vaults/savings/abis/shared.d.ts.map +1 -0
  329. package/dist/vaults/savings/fetchPublic.d.ts +22 -0
  330. package/dist/vaults/savings/fetchPublic.d.ts.map +1 -0
  331. package/dist/vaults/savings/index.d.ts +4 -0
  332. package/dist/vaults/savings/index.d.ts.map +1 -0
  333. package/dist/vaults/savings/readers/erc4626.d.ts +25 -0
  334. package/dist/vaults/savings/readers/erc4626.d.ts.map +1 -0
  335. package/dist/vaults/savings/readers/index.d.ts +16 -0
  336. package/dist/vaults/savings/readers/index.d.ts.map +1 -0
  337. package/dist/vaults/savings/readers/shared.d.ts +44 -0
  338. package/dist/vaults/savings/readers/shared.d.ts.map +1 -0
  339. package/dist/vaults/savings/registry.d.ts +69 -0
  340. package/dist/vaults/savings/registry.d.ts.map +1 -0
  341. package/dist/vaults/savings/types.d.ts +111 -0
  342. package/dist/vaults/savings/types.d.ts.map +1 -0
  343. package/dist/vaults/savings/yieldBinding.d.ts +19 -0
  344. package/dist/vaults/savings/yieldBinding.d.ts.map +1 -0
  345. package/dist/vaults/silo/types.d.ts +2 -1
  346. package/dist/vaults/silo/types.d.ts.map +1 -1
  347. package/dist/vaults/yield/annualize.d.ts +62 -0
  348. package/dist/vaults/yield/annualize.d.ts.map +1 -0
  349. package/dist/vaults/yield/index.d.ts +3 -0
  350. package/dist/vaults/yield/index.d.ts.map +1 -0
  351. package/dist/vaults/yield/sharePrice.d.ts +21 -0
  352. package/dist/vaults/yield/sharePrice.d.ts.map +1 -0
  353. package/dist/yields/intrinsic/fetchers/ankr.d.ts +3 -0
  354. package/dist/yields/intrinsic/fetchers/ankr.d.ts.map +1 -0
  355. package/dist/yields/intrinsic/fetchers/berapaw.d.ts +3 -0
  356. package/dist/yields/intrinsic/fetchers/berapaw.d.ts.map +1 -0
  357. package/dist/yields/intrinsic/fetchers/core.d.ts +3 -0
  358. package/dist/yields/intrinsic/fetchers/core.d.ts.map +1 -0
  359. package/dist/yields/intrinsic/fetchers/defillama.d.ts +2 -0
  360. package/dist/yields/intrinsic/fetchers/defillama.d.ts.map +1 -0
  361. package/dist/yields/intrinsic/fetchers/dinero.d.ts +3 -0
  362. package/dist/yields/intrinsic/fetchers/dinero.d.ts.map +1 -0
  363. package/dist/yields/intrinsic/fetchers/etherfi.d.ts +1 -0
  364. package/dist/yields/intrinsic/fetchers/etherfi.d.ts.map +1 -1
  365. package/dist/yields/intrinsic/fetchers/infrared.d.ts +4 -0
  366. package/dist/yields/intrinsic/fetchers/infrared.d.ts.map +1 -0
  367. package/dist/yields/intrinsic/fetchers/kinetiq.d.ts +3 -0
  368. package/dist/yields/intrinsic/fetchers/kinetiq.d.ts.map +1 -0
  369. package/dist/yields/intrinsic/fetchers/lair.d.ts +3 -0
  370. package/dist/yields/intrinsic/fetchers/lair.d.ts.map +1 -0
  371. package/dist/yields/intrinsic/fetchers/lista.d.ts +3 -0
  372. package/dist/yields/intrinsic/fetchers/lista.d.ts.map +1 -0
  373. package/dist/yields/intrinsic/fetchers/lombard.d.ts +3 -0
  374. package/dist/yields/intrinsic/fetchers/lombard.d.ts.map +1 -0
  375. package/dist/yields/intrinsic/fetchers/primestaking.d.ts +3 -0
  376. package/dist/yields/intrinsic/fetchers/primestaking.d.ts.map +1 -0
  377. package/dist/yields/intrinsic/fetchers/solv.d.ts +3 -0
  378. package/dist/yields/intrinsic/fetchers/solv.d.ts.map +1 -0
  379. package/dist/yields/intrinsic/fetchers/stcelo.d.ts +3 -0
  380. package/dist/yields/intrinsic/fetchers/stcelo.d.ts.map +1 -0
  381. package/dist/yields/intrinsic/fetchers/stella.d.ts +3 -0
  382. package/dist/yields/intrinsic/fetchers/stella.d.ts.map +1 -0
  383. package/dist/yields/intrinsic/fetchers/swBTC.d.ts +3 -0
  384. package/dist/yields/intrinsic/fetchers/swBTC.d.ts.map +1 -0
  385. package/dist/yields/intrinsic/fetchers/trufin.d.ts +1 -0
  386. package/dist/yields/intrinsic/fetchers/trufin.d.ts.map +1 -1
  387. package/dist/yields/intrinsic/fetchers/valantis.d.ts +3 -0
  388. package/dist/yields/intrinsic/fetchers/valantis.d.ts.map +1 -0
  389. package/dist/yields/intrinsic/fetchers/yieldnest.d.ts.map +1 -1
  390. package/dist/yields/intrinsic/index.d.ts.map +1 -1
  391. package/package.json +6 -6
  392. package/dist/ccip-SQXTDOS7.js +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staderMaticx.d.ts","sourceRoot":"","sources":["../../../../../src/vaults/lst/withdrawals/readers/staderMaticx.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE7D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,EAAE,mBAoDhC,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { type LstWithdrawalReader } from './shared';
2
+ /**
3
+ * StakeWise V3 osETH — multi-vault async exit queue, indexed only via
4
+ * StakeWise's self-hosted subgraph.
5
+ *
6
+ * Sequence:
7
+ * 1. GraphQL POST to the StakeWise subgraph for all non-claimed exit
8
+ * requests owned by `user`. Returns the list with per-vault
9
+ * positionTicket + (lagging) `isClaimable`.
10
+ * 2. For each request that has an `exitQueueIndex` assigned, multicall
11
+ * `calculateExitedAssets(receiver, positionTicket, timestamp,
12
+ * exitQueueIndex)` on the vault to re-confirm finalization (the
13
+ * subgraph lags a few blocks; on-chain is the source of truth).
14
+ * 3. Normalise to `LstWithdrawalRequest[]`.
15
+ *
16
+ * Subgraph downtime: returns `[]` and lets the orchestrator surface
17
+ * "we don't know your requests" rather than fail-loud. The reader's
18
+ * caller already tolerates per-reader empty results.
19
+ *
20
+ * Per-vault address surfaced in `lst` field overrides the registry's
21
+ * osETH share-token address — StakeWise exits are per-vault, not
22
+ * per-osETH (osETH is the protocol-wide minted share). Each request
23
+ * carries its source vault so UIs can group / route claims correctly.
24
+ */
25
+ export declare const readerStakeWise: LstWithdrawalReader;
26
+ //# sourceMappingURL=stakewise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakewise.d.ts","sourceRoot":"","sources":["../../../../../src/vaults/lst/withdrawals/readers/stakewise.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AA2C7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,eAAe,EAAE,mBAkF7B,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { type LstWithdrawalReader } from './shared';
2
+ /**
3
+ * StakedCelo (stCELO) — pending-withdrawal enumeration.
4
+ *
5
+ * Single stage: `Account.getPendingWithdrawals(beneficiary)` returns
6
+ * parallel `(values[], timestamps[])` arrays. Each entry is a
7
+ * LockedGold unlock created by `Account.withdraw`; `timestamp` is the
8
+ * unix-second moment it becomes claimable via
9
+ * `Account.finishPendingWithdrawal`.
10
+ *
11
+ * Entries only appear here **after** the per-group `Account.withdraw`
12
+ * step has run (the post-`Manager.withdraw` scheduled withdrawals are
13
+ * not yet LockedGold pending withdrawals and so are not enumerated).
14
+ */
15
+ export declare const readerStCelo: LstWithdrawalReader;
16
+ //# sourceMappingURL=stcelo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stcelo.d.ts","sourceRoot":"","sources":["../../../../../src/vaults/lst/withdrawals/readers/stcelo.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,EAAE,mBA6C1B,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { type LstWithdrawalReader } from './shared';
2
+ /**
3
+ * StellaSwap stDOT unbonding reader (Moonbeam 1284).
4
+ *
5
+ * One call: `getUnbonded(user) → (waiting, unbonded)`. The lido-dot-ksm
6
+ * stToken tracks only the per-user **aggregate** in two buckets — no
7
+ * per-request IDs — so this surfaces up to two synthetic requests:
8
+ * - `waiting` > 0 → a `pending` request (still in the ~28-day unbond;
9
+ * the exact ready time is not exposed per-bucket, so `readyAt` is
10
+ * left unset).
11
+ * - `unbonded` > 0 → a `claimable` request (matured, redeemable via
12
+ * `claimUnbonded()`).
13
+ *
14
+ * No enumeration, same single-call shape as the Ethena cooldown reader.
15
+ */
16
+ export declare const readerStellaUnbond: LstWithdrawalReader;
17
+ //# sourceMappingURL=stella.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stella.d.ts","sourceRoot":"","sources":["../../../../../src/vaults/lst/withdrawals/readers/stella.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE7D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,EAAE,mBAgDhC,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { type LstWithdrawalReader } from './shared';
2
+ /**
3
+ * Swell rswETH — ERC-721 enumerable rswEXIT NFT. Same enumeration
4
+ * pattern as EtherFi:
5
+ * 1. `balanceOf(user)` → count.
6
+ * 2. `tokenOfOwnerByIndex(user, i)` for i in [0, count) — enumerate
7
+ * token IDs.
8
+ * 3. `getWithdrawalRequest(id)` per id + a single
9
+ * `getLastTokenIdProcessed()` for the finalization frontier.
10
+ *
11
+ * A request is claimable iff `tokenId <= lastTokenIdProcessed`.
12
+ *
13
+ * Log-free per `INDEXING_STRATEGIES.md`: ERC721EnumerableUpgradeable
14
+ * is in rswEXIT's inheritance chain (verified via
15
+ * `supportsInterface(0x780e9d63)`).
16
+ */
17
+ export declare const readerSwell: LstWithdrawalReader;
18
+ //# sourceMappingURL=swell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swell.d.ts","sourceRoot":"","sources":["../../../../../src/vaults/lst/withdrawals/readers/swell.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEvE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,EAAE,mBAmEzB,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { type LstWithdrawalReader } from './shared';
2
+ /**
3
+ * TruFin TruMATIC — log-free via caller-supplied
4
+ * `{ validator, nonce }` pairs.
5
+ *
6
+ * Unlike Mantle/Puffer (single-bigint id), TruFin's natural request
7
+ * unit is `(validator, unbondNonce)` — both arguments to the claim
8
+ * function `withdrawClaim(unbondNonce, validator)`. The reader
9
+ * filters `knownIds` to objects with `validator` + `nonce`.
10
+ *
11
+ * Per pair: multicall `withdrawals(validator, nonce)` +
12
+ * `isClaimable(nonce, validator)`. `withdrawals` also returns the
13
+ * recipient — used as a defensive filter against stale persisted
14
+ * IDs from other accounts.
15
+ *
16
+ * Returns `[]` when no pairs are supplied.
17
+ */
18
+ export declare const readerTruFin: LstWithdrawalReader;
19
+ //# sourceMappingURL=trufin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trufin.d.ts","sourceRoot":"","sources":["../../../../../src/vaults/lst/withdrawals/readers/trufin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE7D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,EAAE,mBA8D1B,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { type LstWithdrawalReader } from './shared';
2
+ /**
3
+ * Valantis stHYPE / wstHYPE — burn-request enumeration on the Overseer.
4
+ *
5
+ * Single call: `getBurns(user, 0, MAX_BURNS)` returns parallel `(Burn[],
6
+ * ids[], redeemable[])`. `completed` burns have already been redeemed
7
+ * and are skipped. The Overseer exposes no per-burn ready timestamp, so
8
+ * `status` comes from the `redeemable` flag.
9
+ */
10
+ export declare const readerValantis: LstWithdrawalReader;
11
+ //# sourceMappingURL=valantis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valantis.d.ts","sourceRoot":"","sources":["../../../../../src/vaults/lst/withdrawals/readers/valantis.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAM7D;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,mBAkD5B,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { type LstWithdrawalReader } from './shared';
2
+ /**
3
+ * YieldNest ynETH — ERC-721 enumerable withdrawal queue with
4
+ * deterministic `secondsToFinalization` (a global value, applied to
5
+ * every request's `creationTimestamp`).
6
+ *
7
+ * Three stages: `balanceOf` → per-index id → per-id detail. Plus a
8
+ * one-time `secondsToFinalization()` for `readyAt` computation.
9
+ */
10
+ export declare const readerYieldNest: LstWithdrawalReader;
11
+ //# sourceMappingURL=yieldnest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yieldnest.d.ts","sourceRoot":"","sources":["../../../../../src/vaults/lst/withdrawals/readers/yieldnest.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,UAAU,CAAA;AAEjB;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,mBA2E7B,CAAA"}
@@ -0,0 +1,46 @@
1
+ import type { LstWithdrawalReaderKind } from './types';
2
+ /**
3
+ * Static registry entry for an LST's withdrawal-request enumeration
4
+ * surface.
5
+ *
6
+ * Each entry pins: the LST share-token address, the brand/symbol
7
+ * (for output labelling), the reader kind, and any auxiliary contract
8
+ * addresses the reader needs (the withdrawal-manager NFT/queue
9
+ * contract, Polygon stake manager for MaticX, …).
10
+ *
11
+ * Mirrors [LST_WITHDRAWAL_QUEUES.md](../LST_WITHDRAWAL_QUEUES.md);
12
+ * read that for per-protocol semantics.
13
+ */
14
+ export interface LstWithdrawalRegistryEntry {
15
+ /** LST share-token address (matches `address` in
16
+ * `../registry.ts → LST_REGISTRY`). Lowercased. */
17
+ lst: string;
18
+ /** Brand label. */
19
+ brand: string;
20
+ /** Symbol — used to label the per-asset request list in UI. */
21
+ symbol: string;
22
+ /** Reader kind. */
23
+ reader: LstWithdrawalReaderKind;
24
+ /** Optional withdrawal contract — separate from the LST share token
25
+ * for most protocols. Lowercased.
26
+ * - Lido: WithdrawalQueueERC721
27
+ * - EtherFi: WithdrawRequestNFT
28
+ * - YieldNest: WithdrawalQueueManager
29
+ * - Stader ETHx: UserWithdrawalManager
30
+ * - Stader MaticX: the home contract itself
31
+ * - Renzo: WithdrawQueue
32
+ * - BENQI sAVAX: the sAVAX contract itself
33
+ * - Beets stS: the SonicStaking proxy itself
34
+ * - Hyperbeat hbHYPE: the share token itself (ERC-7540 surface) */
35
+ withdrawalContract?: string;
36
+ /** Polygon IStakeManager — only for `staderMaticXQueue`. The
37
+ * finalization check requires `epoch()` + `withdrawalDelay()`. */
38
+ polygonStakeManager?: string;
39
+ }
40
+ /** Per-chain LST withdrawal-reader allowlist. */
41
+ export declare const LST_WITHDRAWAL_REGISTRY: {
42
+ [chainId: string]: LstWithdrawalRegistryEntry[];
43
+ };
44
+ /** Returns the withdrawal-registry entries for a chain, or `[]`. */
45
+ export declare const getLstWithdrawalRegistry: (chainId: string, extraEntries?: LstWithdrawalRegistryEntry[]) => LstWithdrawalRegistryEntry[];
46
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/vaults/lst/withdrawals/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEtD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,0BAA0B;IACzC;wDACoD;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB;IACnB,MAAM,EAAE,uBAAuB,CAAA;IAC/B;;;;;;;;;;wEAUoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;uEACmE;IACnE,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,iDAAiD;AACjD,eAAO,MAAM,uBAAuB,EAAE;IACpC,CAAC,OAAO,EAAE,MAAM,GAAG,0BAA0B,EAAE,CAAA;CAoYhD,CAAA;AAED,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,eAAe,0BAA0B,EAAE,KAC1C,0BAA0B,EAQ5B,CAAA"}
@@ -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' | 'stellaUnbondQueue' | '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,mBAAmB,GACnB,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;AAErD,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,WAAW;IAC1B,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"}
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,4 @@
1
+ export { fetchSavingsVaults } from './fetchPublic';
2
+ export type { SavingsVault, SavingsVaults, SavingsWithdrawalMode, } from './types';
3
+ export { SAVINGS_REGISTRY, getSavingsRegistry, type SavingsRegistryEntry, } from './registry';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}