@lidofinance/lsv-cli 1.0.0-alpha.4 → 1.0.0-alpha.40

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 (413) hide show
  1. package/README.md +37 -20
  2. package/dist/abi/BlsHarness.d.ts +178 -0
  3. package/dist/abi/BlsHarness.js +232 -0
  4. package/dist/abi/BlsHarness.js.map +1 -0
  5. package/dist/abi/CLProofVerifier.d.ts +188 -0
  6. package/dist/abi/CLProofVerifier.js +247 -0
  7. package/dist/abi/CLProofVerifier.js.map +1 -0
  8. package/dist/abi/Dashboard.d.ts +1486 -0
  9. package/dist/abi/Dashboard.js +1920 -0
  10. package/dist/abi/Dashboard.js.map +1 -0
  11. package/dist/abi/LidoLocator.d.ts +330 -0
  12. package/dist/abi/LidoLocator.js +426 -0
  13. package/dist/abi/LidoLocator.js.map +1 -0
  14. package/dist/abi/OperatorGrid.d.ts +914 -0
  15. package/dist/abi/OperatorGrid.js +1185 -0
  16. package/dist/abi/OperatorGrid.js.map +1 -0
  17. package/dist/abi/PredepositGuarantee.d.ts +1382 -0
  18. package/dist/abi/PredepositGuarantee.js +1789 -0
  19. package/dist/abi/PredepositGuarantee.js.map +1 -0
  20. package/dist/abi/ReportChecker.d.ts +83 -0
  21. package/dist/abi/ReportChecker.js +109 -0
  22. package/dist/abi/ReportChecker.js.map +1 -0
  23. package/dist/abi/StEth.d.ts +372 -0
  24. package/dist/abi/StEth.js +493 -0
  25. package/dist/abi/StEth.js.map +1 -0
  26. package/dist/abi/StakingVault.d.ts +864 -0
  27. package/dist/abi/StakingVault.js +1112 -0
  28. package/dist/abi/StakingVault.js.map +1 -0
  29. package/dist/abi/TokenManager.d.ts +577 -0
  30. package/dist/abi/TokenManager.js +756 -0
  31. package/dist/abi/TokenManager.js.map +1 -0
  32. package/dist/abi/VaultFactory.d.ts +160 -0
  33. package/dist/abi/VaultFactory.js +209 -0
  34. package/dist/abi/VaultFactory.js.map +1 -0
  35. package/dist/abi/VaultHub.d.ts +1317 -0
  36. package/dist/abi/VaultHub.js +1255 -436
  37. package/dist/abi/VaultHub.js.map +1 -1
  38. package/dist/abi/VaultViewer.d.ts +223 -0
  39. package/dist/abi/VaultViewer.js +297 -0
  40. package/dist/abi/VaultViewer.js.map +1 -0
  41. package/dist/abi/Voting.d.ts +676 -0
  42. package/dist/abi/Voting.js +884 -0
  43. package/dist/abi/Voting.js.map +1 -0
  44. package/dist/abi/WstEth.d.ts +362 -0
  45. package/dist/abi/WstEth.js +478 -0
  46. package/dist/abi/WstEth.js.map +1 -0
  47. package/dist/abi/index.d.ts +15 -0
  48. package/dist/abi/index.js +17 -0
  49. package/dist/abi/index.js.map +1 -0
  50. package/dist/command/index.d.ts +2 -0
  51. package/dist/command/index.js +4 -5
  52. package/dist/command/index.js.map +1 -1
  53. package/dist/configs/constants.d.ts +36 -0
  54. package/dist/configs/constants.js +3 -0
  55. package/dist/configs/constants.js.map +1 -0
  56. package/dist/configs/deployed.d.ts +17 -0
  57. package/dist/configs/deployed.js +87 -52
  58. package/dist/configs/deployed.js.map +1 -1
  59. package/dist/configs/envs.d.ts +2 -0
  60. package/dist/configs/envs.js +8 -37
  61. package/dist/configs/envs.js.map +1 -1
  62. package/dist/configs/index.d.ts +3 -0
  63. package/dist/configs/index.js +3 -18
  64. package/dist/configs/index.js.map +1 -1
  65. package/dist/configs/utils.d.ts +4 -0
  66. package/dist/configs/utils.js +22 -0
  67. package/dist/configs/utils.js.map +1 -0
  68. package/dist/contracts/blsHarness.d.ts +947 -0
  69. package/dist/contracts/blsHarness.js +24 -0
  70. package/dist/contracts/blsHarness.js.map +1 -0
  71. package/dist/contracts/clProofVerifier.d.ts +2647 -0
  72. package/dist/contracts/clProofVerifier.js +23 -0
  73. package/dist/contracts/clProofVerifier.js.map +1 -0
  74. package/dist/contracts/dashboard.d.ts +4 -0
  75. package/dist/contracts/dashboard.js +11 -0
  76. package/dist/contracts/dashboard.js.map +1 -0
  77. package/dist/contracts/index.d.ts +15 -0
  78. package/dist/contracts/index.js +15 -17
  79. package/dist/contracts/index.js.map +1 -1
  80. package/dist/contracts/locator.d.ts +6935 -0
  81. package/dist/contracts/locator.js +16 -0
  82. package/dist/contracts/locator.js.map +1 -0
  83. package/dist/contracts/operator-grid.d.ts +3 -0
  84. package/dist/contracts/operator-grid.js +17 -0
  85. package/dist/contracts/operator-grid.js.map +1 -0
  86. package/dist/contracts/pdg.d.ts +3 -0
  87. package/dist/contracts/pdg.js +17 -0
  88. package/dist/contracts/pdg.js.map +1 -0
  89. package/dist/contracts/reportChecker.d.ts +758 -0
  90. package/dist/contracts/reportChecker.js +23 -0
  91. package/dist/contracts/reportChecker.js.map +1 -0
  92. package/dist/contracts/steth.d.ts +27706 -0
  93. package/dist/contracts/steth.js +18 -0
  94. package/dist/contracts/steth.js.map +1 -0
  95. package/dist/contracts/token-manager.d.ts +3 -0
  96. package/dist/contracts/token-manager.js +13 -0
  97. package/dist/contracts/token-manager.js.map +1 -0
  98. package/dist/contracts/vault-factory.d.ts +2678 -0
  99. package/dist/contracts/vault-factory.js +14 -0
  100. package/dist/contracts/vault-factory.js.map +1 -0
  101. package/dist/contracts/vault-hub.d.ts +3 -0
  102. package/dist/contracts/vault-hub.js +14 -16
  103. package/dist/contracts/vault-hub.js.map +1 -1
  104. package/dist/contracts/vault-viewer.d.ts +2681 -0
  105. package/dist/contracts/vault-viewer.js +23 -0
  106. package/dist/contracts/vault-viewer.js.map +1 -0
  107. package/dist/contracts/vault.d.ts +3 -0
  108. package/dist/contracts/vault.js +11 -0
  109. package/dist/contracts/vault.js.map +1 -0
  110. package/dist/contracts/voting.d.ts +6 -0
  111. package/dist/contracts/voting.js +19 -0
  112. package/dist/contracts/voting.js.map +1 -0
  113. package/dist/contracts/wsteth.d.ts +24690 -0
  114. package/dist/contracts/wsteth.js +18 -0
  115. package/dist/contracts/wsteth.js.map +1 -0
  116. package/dist/features/dashboard.d.ts +5 -0
  117. package/dist/features/dashboard.js +217 -0
  118. package/dist/features/dashboard.js.map +1 -0
  119. package/dist/features/index.d.ts +7 -0
  120. package/dist/features/index.js +8 -0
  121. package/dist/features/index.js.map +1 -0
  122. package/dist/features/operator-grid.d.ts +2 -0
  123. package/dist/features/operator-grid.js +57 -0
  124. package/dist/features/operator-grid.js.map +1 -0
  125. package/dist/features/pdg.d.ts +2 -0
  126. package/dist/features/pdg.js +80 -0
  127. package/dist/features/pdg.js.map +1 -0
  128. package/dist/features/token-manager.d.ts +0 -0
  129. package/dist/features/token-manager.js +7 -0
  130. package/dist/features/token-manager.js.map +1 -0
  131. package/dist/features/vault-factory.d.ts +8 -0
  132. package/dist/features/vault-factory.js +57 -0
  133. package/dist/features/vault-factory.js.map +1 -0
  134. package/dist/features/vault-hub.d.ts +2 -0
  135. package/dist/features/vault-hub.js +81 -0
  136. package/dist/features/vault-hub.js.map +1 -0
  137. package/dist/features/vault.d.ts +2 -0
  138. package/dist/features/vault.js +54 -0
  139. package/dist/features/vault.js.map +1 -0
  140. package/dist/features/voting.d.ts +7 -0
  141. package/dist/features/voting.js +133 -0
  142. package/dist/features/voting.js.map +1 -0
  143. package/dist/index.d.ts +3 -0
  144. package/dist/index.js +8 -5
  145. package/dist/index.js.map +1 -1
  146. package/dist/programs/account.d.ts +1 -0
  147. package/dist/programs/account.js +137 -0
  148. package/dist/programs/account.js.map +1 -0
  149. package/dist/programs/config.d.ts +1 -0
  150. package/dist/programs/config.js +31 -0
  151. package/dist/programs/config.js.map +1 -0
  152. package/dist/programs/dashboard/config.d.ts +2 -0
  153. package/dist/programs/dashboard/config.js +111 -0
  154. package/dist/programs/dashboard/config.js.map +1 -0
  155. package/dist/programs/dashboard/index.d.ts +3 -0
  156. package/dist/programs/dashboard/index.js +4 -0
  157. package/dist/programs/dashboard/index.js.map +1 -0
  158. package/dist/programs/dashboard/main.d.ts +1 -0
  159. package/dist/programs/dashboard/main.js +5 -0
  160. package/dist/programs/dashboard/main.js.map +1 -0
  161. package/dist/programs/dashboard/read.d.ts +1 -0
  162. package/dist/programs/dashboard/read.js +88 -0
  163. package/dist/programs/dashboard/read.js.map +1 -0
  164. package/dist/programs/dashboard/write.d.ts +1 -0
  165. package/dist/programs/dashboard/write.js +553 -0
  166. package/dist/programs/dashboard/write.js.map +1 -0
  167. package/dist/programs/hub/config.d.ts +2 -0
  168. package/dist/programs/hub/config.js +123 -0
  169. package/dist/programs/hub/config.js.map +1 -0
  170. package/dist/programs/hub/index.d.ts +3 -0
  171. package/dist/programs/hub/index.js +4 -0
  172. package/dist/programs/hub/index.js.map +1 -0
  173. package/dist/programs/hub/main.d.ts +1 -0
  174. package/dist/programs/hub/main.js +5 -0
  175. package/dist/programs/hub/main.js.map +1 -0
  176. package/dist/programs/hub/read.d.ts +1 -0
  177. package/dist/programs/hub/read.js +57 -0
  178. package/dist/programs/hub/read.js.map +1 -0
  179. package/dist/programs/hub/write.d.ts +1 -0
  180. package/dist/programs/hub/write.js +246 -0
  181. package/dist/programs/hub/write.js.map +1 -0
  182. package/dist/programs/index.d.ts +11 -0
  183. package/dist/programs/index.js +11 -17
  184. package/dist/programs/index.js.map +1 -1
  185. package/dist/programs/operator-grid/config.d.ts +2 -0
  186. package/dist/programs/operator-grid/config.js +81 -0
  187. package/dist/programs/operator-grid/config.js.map +1 -0
  188. package/dist/programs/operator-grid/index.d.ts +3 -0
  189. package/dist/programs/operator-grid/index.js +4 -0
  190. package/dist/programs/operator-grid/index.js.map +1 -0
  191. package/dist/programs/operator-grid/main.d.ts +1 -0
  192. package/dist/programs/operator-grid/main.js +5 -0
  193. package/dist/programs/operator-grid/main.js.map +1 -0
  194. package/dist/programs/operator-grid/read.d.ts +1 -0
  195. package/dist/programs/operator-grid/read.js +24 -0
  196. package/dist/programs/operator-grid/read.js.map +1 -0
  197. package/dist/programs/operator-grid/write.d.ts +1 -0
  198. package/dist/programs/operator-grid/write.js +124 -0
  199. package/dist/programs/operator-grid/write.js.map +1 -0
  200. package/dist/programs/pdg/config.d.ts +2 -0
  201. package/dist/programs/pdg/config.js +133 -0
  202. package/dist/programs/pdg/config.js.map +1 -0
  203. package/dist/programs/pdg/index.d.ts +3 -0
  204. package/dist/programs/pdg/index.js +4 -0
  205. package/dist/programs/pdg/index.js.map +1 -0
  206. package/dist/programs/pdg/main.d.ts +1 -0
  207. package/dist/programs/pdg/main.js +5 -0
  208. package/dist/programs/pdg/main.js.map +1 -0
  209. package/dist/programs/pdg/read.d.ts +1 -0
  210. package/dist/programs/pdg/read.js +24 -0
  211. package/dist/programs/pdg/read.js.map +1 -0
  212. package/dist/programs/pdg/write.d.ts +1 -0
  213. package/dist/programs/pdg/write.js +366 -0
  214. package/dist/programs/pdg/write.js.map +1 -0
  215. package/dist/programs/pdg-helpers.d.ts +1 -0
  216. package/dist/programs/pdg-helpers.js +216 -0
  217. package/dist/programs/pdg-helpers.js.map +1 -0
  218. package/dist/programs/report/index.d.ts +3 -0
  219. package/dist/programs/report/index.js +4 -0
  220. package/dist/programs/report/index.js.map +1 -0
  221. package/dist/programs/report/main.d.ts +1 -0
  222. package/dist/programs/report/main.js +3 -0
  223. package/dist/programs/report/main.js.map +1 -0
  224. package/dist/programs/report/read.d.ts +1 -0
  225. package/dist/programs/report/read.js +61 -0
  226. package/dist/programs/report/read.js.map +1 -0
  227. package/dist/programs/report/write.d.ts +1 -0
  228. package/dist/programs/report/write.js +126 -0
  229. package/dist/programs/report/write.js.map +1 -0
  230. package/dist/programs/vault/config.d.ts +2 -0
  231. package/dist/programs/vault/config.js +70 -0
  232. package/dist/programs/vault/config.js.map +1 -0
  233. package/dist/programs/vault/index.d.ts +3 -0
  234. package/dist/programs/vault/index.js +4 -0
  235. package/dist/programs/vault/index.js.map +1 -0
  236. package/dist/programs/vault/main.d.ts +1 -0
  237. package/dist/programs/vault/main.js +3 -0
  238. package/dist/programs/vault/main.js.map +1 -0
  239. package/dist/programs/vault/read.d.ts +1 -0
  240. package/dist/programs/vault/read.js +25 -0
  241. package/dist/programs/vault/read.js.map +1 -0
  242. package/dist/programs/vault/write.d.ts +1 -0
  243. package/dist/programs/vault/write.js +247 -0
  244. package/dist/programs/vault/write.js.map +1 -0
  245. package/dist/programs/vault-factory/config.d.ts +2 -0
  246. package/dist/programs/vault-factory/config.js +2 -0
  247. package/dist/programs/vault-factory/config.js.map +1 -0
  248. package/dist/programs/vault-factory/index.d.ts +3 -0
  249. package/dist/programs/vault-factory/index.js +4 -0
  250. package/dist/programs/vault-factory/index.js.map +1 -0
  251. package/dist/programs/vault-factory/main.d.ts +1 -0
  252. package/dist/programs/vault-factory/main.js +5 -0
  253. package/dist/programs/vault-factory/main.js.map +1 -0
  254. package/dist/programs/vault-factory/read.d.ts +1 -0
  255. package/dist/programs/vault-factory/read.js +24 -0
  256. package/dist/programs/vault-factory/read.js.map +1 -0
  257. package/dist/programs/vault-factory/write.d.ts +1 -0
  258. package/dist/programs/vault-factory/write.js +72 -0
  259. package/dist/programs/vault-factory/write.js.map +1 -0
  260. package/dist/programs/vault-viewer/config.d.ts +2 -0
  261. package/dist/programs/vault-viewer/config.js +119 -0
  262. package/dist/programs/vault-viewer/config.js.map +1 -0
  263. package/dist/programs/vault-viewer/index.d.ts +2 -0
  264. package/dist/programs/vault-viewer/index.js +3 -0
  265. package/dist/programs/vault-viewer/index.js.map +1 -0
  266. package/dist/programs/vault-viewer/main.d.ts +1 -0
  267. package/dist/programs/vault-viewer/main.js +10 -0
  268. package/dist/programs/vault-viewer/main.js.map +1 -0
  269. package/dist/programs/vault-viewer/read.d.ts +1 -0
  270. package/dist/programs/vault-viewer/read.js +55 -0
  271. package/dist/programs/vault-viewer/read.js.map +1 -0
  272. package/dist/programs/voting.d.ts +1 -0
  273. package/dist/programs/voting.js +18 -0
  274. package/dist/programs/voting.js.map +1 -0
  275. package/dist/providers/index.d.ts +1 -0
  276. package/dist/providers/index.js +1 -17
  277. package/dist/providers/index.js.map +1 -1
  278. package/dist/providers/wallet.d.ts +6897 -0
  279. package/dist/providers/wallet.js +20 -29
  280. package/dist/providers/wallet.js.map +1 -1
  281. package/dist/types/common.d.ts +31 -0
  282. package/dist/types/common.js +2 -0
  283. package/dist/types/common.js.map +1 -0
  284. package/dist/types/config.d.ts +23 -0
  285. package/dist/types/config.js +2 -0
  286. package/dist/types/config.js.map +1 -0
  287. package/dist/types/index.d.ts +2 -0
  288. package/dist/types/index.js +3 -0
  289. package/dist/types/index.js.map +1 -0
  290. package/dist/utils/arguments.d.ts +13 -0
  291. package/dist/utils/arguments.js +67 -0
  292. package/dist/utils/arguments.js.map +1 -0
  293. package/dist/utils/bls.d.ts +21 -0
  294. package/dist/utils/bls.js +101 -0
  295. package/dist/utils/bls.js.map +1 -0
  296. package/dist/utils/calculate-overview.d.ts +28 -0
  297. package/dist/utils/calculate-overview.js +56 -0
  298. package/dist/utils/calculate-overview.js.map +1 -0
  299. package/dist/utils/commands/dashboard.d.ts +6 -0
  300. package/dist/utils/commands/dashboard.js +108 -0
  301. package/dist/utils/commands/dashboard.js.map +1 -0
  302. package/dist/utils/commands/index.d.ts +1 -0
  303. package/dist/utils/commands/index.js +2 -0
  304. package/dist/utils/commands/index.js.map +1 -0
  305. package/dist/utils/contract.d.ts +45 -0
  306. package/dist/utils/contract.js +170 -0
  307. package/dist/utils/contract.js.map +1 -0
  308. package/dist/utils/data-validators.d.ts +6 -0
  309. package/dist/utils/data-validators.js +54 -0
  310. package/dist/utils/data-validators.js.map +1 -0
  311. package/dist/utils/error-handler.d.ts +1 -0
  312. package/dist/utils/error-handler.js +13 -0
  313. package/dist/utils/error-handler.js.map +1 -0
  314. package/dist/utils/fetchCL.d.ts +14 -0
  315. package/dist/utils/fetchCL.js +57 -0
  316. package/dist/utils/fetchCL.js.map +1 -0
  317. package/dist/utils/get-commands.d.ts +2 -0
  318. package/dist/utils/get-commands.js +11 -0
  319. package/dist/utils/get-commands.js.map +1 -0
  320. package/dist/utils/get-deposit-data-root.d.ts +7 -0
  321. package/dist/utils/get-deposit-data-root.js +40 -0
  322. package/dist/utils/get-deposit-data-root.js.map +1 -0
  323. package/dist/utils/get-value.d.ts +1 -0
  324. package/dist/utils/get-value.js +5 -11
  325. package/dist/utils/get-value.js.map +1 -1
  326. package/dist/utils/health/calculate-health.d.ts +11 -0
  327. package/dist/utils/health/calculate-health.js +22 -0
  328. package/dist/utils/health/calculate-health.js.map +1 -0
  329. package/dist/utils/health/health-utils.d.ts +27743 -0
  330. package/dist/utils/health/health-utils.js +74 -0
  331. package/dist/utils/health/health-utils.js.map +1 -0
  332. package/dist/utils/health/index.d.ts +2 -0
  333. package/dist/utils/health/index.js +3 -0
  334. package/dist/utils/health/index.js.map +1 -0
  335. package/dist/utils/index.d.ts +22 -0
  336. package/dist/utils/index.js +22 -17
  337. package/dist/utils/index.js.map +1 -1
  338. package/dist/utils/ipfs.d.ts +6 -0
  339. package/dist/utils/ipfs.js +57 -0
  340. package/dist/utils/ipfs.js.map +1 -0
  341. package/dist/utils/logging/console.d.ts +7 -0
  342. package/dist/utils/logging/console.js +23 -0
  343. package/dist/utils/logging/console.js.map +1 -0
  344. package/dist/utils/logging/constants.d.ts +2 -0
  345. package/dist/utils/logging/constants.js +12 -0
  346. package/dist/utils/logging/constants.js.map +1 -0
  347. package/dist/utils/logging/index.d.ts +1 -0
  348. package/dist/utils/logging/index.js +2 -0
  349. package/dist/utils/logging/index.js.map +1 -0
  350. package/dist/utils/prompts/dashboard.d.ts +29 -0
  351. package/dist/utils/prompts/dashboard.js +63 -0
  352. package/dist/utils/prompts/dashboard.js.map +1 -0
  353. package/dist/utils/prompts/default.d.ts +3 -0
  354. package/dist/utils/prompts/default.js +17 -0
  355. package/dist/utils/prompts/default.js.map +1 -0
  356. package/dist/utils/prompts/index.d.ts +5 -0
  357. package/dist/utils/prompts/index.js +6 -0
  358. package/dist/utils/prompts/index.js.map +1 -0
  359. package/dist/utils/prompts/operations.d.ts +9 -0
  360. package/dist/utils/prompts/operations.js +41 -0
  361. package/dist/utils/prompts/operations.js.map +1 -0
  362. package/dist/utils/prompts/predeposit-guarantee.d.ts +3 -0
  363. package/dist/utils/prompts/predeposit-guarantee.js +22 -0
  364. package/dist/utils/prompts/predeposit-guarantee.js.map +1 -0
  365. package/dist/utils/prompts/vault.d.ts +2 -0
  366. package/dist/utils/prompts/vault.js +14 -0
  367. package/dist/utils/prompts/vault.js.map +1 -0
  368. package/dist/utils/proof/create-proof.d.ts +11 -0
  369. package/dist/utils/proof/create-proof.js +38 -0
  370. package/dist/utils/proof/create-proof.js.map +1 -0
  371. package/dist/utils/proof/first-validator-gindex.d.ts +1 -0
  372. package/dist/utils/proof/first-validator-gindex.js +27 -0
  373. package/dist/utils/proof/first-validator-gindex.js.map +1 -0
  374. package/dist/utils/proof/index.d.ts +4 -0
  375. package/dist/utils/proof/index.js +5 -0
  376. package/dist/utils/proof/index.js.map +1 -0
  377. package/dist/utils/proof/merkle-utils.d.ts +54 -0
  378. package/dist/utils/proof/merkle-utils.js +173 -0
  379. package/dist/utils/proof/merkle-utils.js.map +1 -0
  380. package/dist/utils/proof/proofs.d.ts +305 -0
  381. package/dist/utils/proof/proofs.js +52 -0
  382. package/dist/utils/proof/proofs.js.map +1 -0
  383. package/dist/utils/proof/report-proof.d.ts +5 -0
  384. package/dist/utils/proof/report-proof.js +26 -0
  385. package/dist/utils/proof/report-proof.js.map +1 -0
  386. package/dist/utils/read-programs-by-abi.d.ts +19 -0
  387. package/dist/utils/read-programs-by-abi.js +89 -0
  388. package/dist/utils/read-programs-by-abi.js.map +1 -0
  389. package/dist/utils/report.d.ts +89 -0
  390. package/dist/utils/report.js +72 -0
  391. package/dist/utils/report.js.map +1 -0
  392. package/dist/utils/required-lock.d.ts +5 -0
  393. package/dist/utils/required-lock.js +21 -0
  394. package/dist/utils/required-lock.js.map +1 -0
  395. package/dist/utils/resolve-path.d.ts +1 -0
  396. package/dist/utils/resolve-path.js +10 -0
  397. package/dist/utils/resolve-path.js.map +1 -0
  398. package/dist/utils/sleep.d.ts +1 -0
  399. package/dist/utils/sleep.js +4 -0
  400. package/dist/utils/sleep.js.map +1 -0
  401. package/dist/utils/spinner/index.d.ts +1 -0
  402. package/dist/utils/spinner/index.js +2 -0
  403. package/dist/utils/spinner/index.js.map +1 -0
  404. package/dist/utils/spinner/spinners.d.ts +7 -0
  405. package/dist/utils/spinner/spinners.js +16 -0
  406. package/dist/utils/spinner/spinners.js.map +1 -0
  407. package/dist/utils/spinner/spinners.json +119 -0
  408. package/dist/version/index.d.ts +1 -0
  409. package/dist/version/index.js +1 -0
  410. package/dist/version/index.js.map +1 -0
  411. package/package.json +63 -12
  412. package/dist/programs/vault-hub.js +0 -137
  413. package/dist/programs/vault-hub.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ import { Address, SimulateContractReturnType, TransactionReceipt } from 'viem';
2
+ export type ReadContract = {
3
+ address: Address;
4
+ read: Record<string, (...args: any[]) => Promise<any>>;
5
+ };
6
+ export type PartialContract = ReadContract & {
7
+ simulate: Record<string, (...args: any[]) => Promise<any>>;
8
+ write: Record<string, (...args: any[]) => Promise<any>>;
9
+ };
10
+ type Writeable<T> = {
11
+ -readonly [P in keyof T]: T[P];
12
+ };
13
+ type GetFirst<T extends unknown[]> = T extends [infer First, infer _Second] ? First : T extends any ? [] : T;
14
+ export declare const callSimulateWriteMethod: <T extends PartialContract, M extends keyof T["simulate"] & string>(args: {
15
+ contract: T;
16
+ methodName: M;
17
+ payload: Writeable<GetFirst<Parameters<T["simulate"][M]>>> | never[];
18
+ value?: bigint;
19
+ withSpinner?: boolean;
20
+ }) => Promise<SimulateContractReturnType>;
21
+ export declare const callWriteMethod: <T extends PartialContract, M extends keyof T["write"] & string>(args: {
22
+ contract: T;
23
+ methodName: M;
24
+ payload: Writeable<GetFirst<Parameters<T["write"][M]>>> | never[];
25
+ value?: bigint;
26
+ withSpinner?: boolean;
27
+ silent?: boolean;
28
+ }) => Promise<Address>;
29
+ export declare const callReadMethod: <T extends ReadContract, M extends keyof T["read"] & string>(contract: T, methodName: M, ...payload: [...Parameters<T["read"][M]>, {
30
+ silent?: boolean;
31
+ }?]) => Promise<ReturnType<T["read"][M]>>;
32
+ export declare const callReadMethodSilent: <T extends ReadContract, M extends keyof T["read"] & string>(contract: T, methodName: M, ...payload: Parameters<T["read"][M]>) => Promise<ReturnType<T["read"][M]>>;
33
+ export declare const isContractAddress: (address: Address) => Promise<boolean>;
34
+ export declare const callWriteMethodWithReceipt: <T extends PartialContract, M extends keyof T["write"] & string>(args: {
35
+ contract: T;
36
+ methodName: M;
37
+ payload: Writeable<GetFirst<Parameters<T["write"][M]>>> | never[];
38
+ value?: bigint;
39
+ withSpinner?: boolean;
40
+ silent?: boolean;
41
+ }) => Promise<{
42
+ receipt: TransactionReceipt;
43
+ tx: Address;
44
+ }>;
45
+ export {};
@@ -0,0 +1,170 @@
1
+ import { waitForTransactionReceipt } from 'viem/actions';
2
+ import { getAccount, getPublicClient } from '../providers/index.js';
3
+ import { getChain } from '../configs/index.js';
4
+ import { showSpinner, printError, logResult, logError } from './index.js';
5
+ export const callSimulateWriteMethod = async (args) => {
6
+ const { contract, methodName, payload, value, withSpinner = true } = args;
7
+ const hideSpinner = withSpinner
8
+ ? showSpinner({
9
+ type: 'bouncingBall',
10
+ message: 'Simulating...',
11
+ })
12
+ : () => { };
13
+ try {
14
+ const method = contract.simulate[methodName];
15
+ const result = await method?.(payload, {
16
+ account: getAccount(),
17
+ chain: getChain(),
18
+ value,
19
+ });
20
+ hideSpinner();
21
+ return result;
22
+ }
23
+ catch (err) {
24
+ hideSpinner();
25
+ const cause = err.cause;
26
+ const signature = cause?.signature;
27
+ if (signature === '0x3fb579ad') {
28
+ logError('Known error: ReportTooOld(uint64,uint64)');
29
+ }
30
+ printError(err, `Error when simulating write method "${methodName}"`);
31
+ throw err;
32
+ }
33
+ };
34
+ export const callWriteMethod = async (args) => {
35
+ const { contract, methodName, payload, value, withSpinner = true, silent = false, } = args;
36
+ const simulateResult = await callSimulateWriteMethod({
37
+ contract,
38
+ methodName,
39
+ payload,
40
+ value,
41
+ withSpinner,
42
+ });
43
+ if (!simulateResult) {
44
+ printError(new Error('Simulation failed'), `Error when simulating write method "${methodName}"`);
45
+ throw new Error('Simulation failed');
46
+ }
47
+ const hideSpinner = withSpinner
48
+ ? showSpinner({
49
+ type: 'bouncingBar',
50
+ message: 'Waiting for transaction receipt...',
51
+ })
52
+ : () => { };
53
+ try {
54
+ const method = contract.write[methodName];
55
+ const tx = await method?.(payload, {
56
+ account: getAccount(),
57
+ chain: getChain(),
58
+ value,
59
+ });
60
+ hideSpinner();
61
+ !silent &&
62
+ logResult({
63
+ 'Method name': methodName,
64
+ Contract: contract.address,
65
+ Transaction: tx,
66
+ });
67
+ return tx;
68
+ }
69
+ catch (err) {
70
+ hideSpinner();
71
+ printError(err, `Error when calling write method "${methodName}"`);
72
+ throw err;
73
+ }
74
+ };
75
+ export const callReadMethod = async (contract, methodName, ...payload) => {
76
+ const hideSpinner = showSpinner();
77
+ const isSilent = payload[payload.length - 1]?.silent ?? false;
78
+ try {
79
+ const method = contract.read[methodName];
80
+ const result = await method?.(...payload);
81
+ hideSpinner();
82
+ if (isSilent)
83
+ return result;
84
+ const base = {
85
+ 'Method name': methodName,
86
+ Contract: contract.address,
87
+ };
88
+ // TODO: do message better or show in called place
89
+ if (Array.isArray(result)) {
90
+ logResult({
91
+ ...base,
92
+ Result: result
93
+ .map((r) => (typeof r === 'bigint' ? r.toString() : String(r)))
94
+ .join(', '),
95
+ });
96
+ }
97
+ else if (typeof result === 'object' && result !== null) {
98
+ // Expand result object into multiple rows
99
+ const expandedResult = {};
100
+ for (const [k, v] of Object.entries(result)) {
101
+ expandedResult[k] = typeof v === 'bigint' ? v.toString() : String(v);
102
+ }
103
+ logResult({
104
+ ...base,
105
+ ...expandedResult,
106
+ });
107
+ }
108
+ else {
109
+ logResult({
110
+ ...base,
111
+ Result: typeof result === 'bigint' ? result.toString() : result,
112
+ });
113
+ }
114
+ return result;
115
+ }
116
+ catch (err) {
117
+ hideSpinner();
118
+ printError(err, `Error when calling read method ${methodName}@${contract.address}`);
119
+ throw err;
120
+ }
121
+ };
122
+ export const callReadMethodSilent = async (contract, methodName, ...payload) => {
123
+ return callReadMethod(contract, methodName, ...payload, {
124
+ silent: true,
125
+ });
126
+ };
127
+ export const isContractAddress = async (address) => {
128
+ const publicClient = getPublicClient();
129
+ const bytecode = await publicClient.getCode({
130
+ address: address,
131
+ });
132
+ return bytecode !== undefined;
133
+ };
134
+ export const callWriteMethodWithReceipt = async (args) => {
135
+ const { contract, methodName, payload, value, withSpinner = true, silent = false, } = args;
136
+ const publicClient = getPublicClient();
137
+ const tx = await callWriteMethod({
138
+ contract,
139
+ methodName,
140
+ payload,
141
+ value,
142
+ withSpinner,
143
+ silent,
144
+ });
145
+ const hideSpinner = withSpinner
146
+ ? showSpinner({
147
+ type: 'bouncingBar',
148
+ message: 'Waiting for transaction receipt...',
149
+ })
150
+ : () => { };
151
+ try {
152
+ const receipt = await waitForTransactionReceipt(publicClient, { hash: tx });
153
+ hideSpinner();
154
+ !silent &&
155
+ logResult({
156
+ 'Method name': methodName,
157
+ Contract: contract.address,
158
+ 'Transaction status': receipt.status,
159
+ 'Transaction block number': Number(receipt.blockNumber),
160
+ 'Transaction gas used': Number(receipt.gasUsed),
161
+ });
162
+ return { receipt, tx };
163
+ }
164
+ catch (err) {
165
+ hideSpinner();
166
+ printError(err, 'Error when waiting for transaction receipt');
167
+ throw err;
168
+ }
169
+ };
170
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../utils/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Config, RoleAssignment } from '../types/index.js';
2
+ export declare const validateConfig: (config: Config) => Record<keyof Config, string>;
3
+ export declare const isValidUrl: (value: string | undefined) => boolean;
4
+ export declare const transformAddressesToArray: (payload: RoleAssignment[]) => Record<string, string[]>;
5
+ export declare const validateAddressesMap: (payload: Record<any, any>) => string[];
6
+ export declare const validateAddressMap: (payload: Record<any, any>) => string[];
@@ -0,0 +1,54 @@
1
+ import { isAddress } from 'viem';
2
+ export const validateConfig = (config) => {
3
+ const errors = {};
4
+ if (isNaN(config.CHAIN_ID)) {
5
+ errors.CHAIN_ID = 'Invalid chainId: must be in config.';
6
+ }
7
+ return errors;
8
+ };
9
+ export const isValidUrl = (value) => {
10
+ if (!value) {
11
+ return false;
12
+ }
13
+ if ('canParse' in URL) {
14
+ return URL.canParse(value);
15
+ }
16
+ try {
17
+ // used global here to avid types issue
18
+ new global.URL(value);
19
+ return true;
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ };
25
+ export const transformAddressesToArray = (payload) => {
26
+ return payload.reduce((acc, role) => {
27
+ if (!acc[role.role]) {
28
+ acc[role.role] = [role.account];
29
+ return acc;
30
+ }
31
+ acc[role.role]?.push(role.account);
32
+ return acc;
33
+ }, {});
34
+ };
35
+ export const validateAddressesMap = (payload) => {
36
+ return Object.keys(payload).reduce((acc, key) => {
37
+ payload[key].forEach((item) => {
38
+ if (!isAddress(item)) {
39
+ acc.push(`${key}: ${item} is not a valid address`);
40
+ }
41
+ });
42
+ return acc;
43
+ }, []);
44
+ };
45
+ export const validateAddressMap = (payload) => {
46
+ return Object.keys(payload).reduce((acc, key) => {
47
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
48
+ if (!isAddress(payload[key])) {
49
+ acc.push(`${key} is not a valid address`);
50
+ }
51
+ return acc;
52
+ }, []);
53
+ };
54
+ //# sourceMappingURL=data-validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-validators.js","sourceRoot":"","sources":["../../utils/data-validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAIjC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE;IAC/C,MAAM,MAAM,GAAG,EAAkC,CAAC;IAElD,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,QAAQ,GAAG,qCAAqC,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAyB,EAAW,EAAE;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC;QACH,uCAAuC;QACvC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAyB,EAAE,EAAE;IACrE,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAA8B,CAC/B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAyB,EAAE,EAAE;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,yBAAyB,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAc,CAAC,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAyB,EAAE,EAAE;IAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9C,oEAAoE;QACpE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAc,CAAC,CAAC;AACrB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const printError: (err: unknown, message: string) => void;
@@ -0,0 +1,13 @@
1
+ import { program } from '../command/index.js';
2
+ import { logError } from './index.js';
3
+ export const printError = (err, message) => {
4
+ if (err instanceof Error) {
5
+ logError(message);
6
+ program.error(`${err.message}`, { exitCode: 1 });
7
+ }
8
+ else {
9
+ logError(message);
10
+ program.error(`${err}`, { exitCode: 1 });
11
+ }
12
+ };
13
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../utils/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAY,EAAE,OAAe,EAAE,EAAE;IAC1D,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { RootHex, Slot } from '@lodestar/types';
2
+ export type BlockId = RootHex | Slot | 'head' | 'genesis' | 'finalized';
3
+ export type StateId = RootHex | Slot | 'head' | 'genesis' | 'finalized' | 'justified';
4
+ export declare const SupportedFork: {
5
+ capella: string;
6
+ deneb: string;
7
+ electra: string;
8
+ };
9
+ export declare const fetchBeaconHeader: (stateId: StateId, clURL?: string) => Promise<any>;
10
+ export declare const fetchBeaconState: (stateId: StateId, clURL?: string) => Promise<{
11
+ stateBodyBytes: ArrayBuffer;
12
+ forkName: keyof typeof SupportedFork;
13
+ }>;
14
+ export declare const fetchBeaconHeaderByParentRoot: (parentRoot: RootHex, clURL?: string) => Promise<any>;
@@ -0,0 +1,57 @@
1
+ import { getConfig } from '../configs/index.js';
2
+ import { printError } from './index.js';
3
+ const endpoints = {
4
+ genesis: 'eth/v1/beacon/genesis',
5
+ beaconHeader: (blockId) => `eth/v1/beacon/headers/${blockId}`,
6
+ beaconHeadersByParentRoot: (parentRoot) => `eth/v1/beacon/headers?parent_root=${parentRoot}`,
7
+ state: (stateId) => `eth/v2/debug/beacon/states/${stateId}`,
8
+ };
9
+ export const SupportedFork = {
10
+ capella: 'capella',
11
+ deneb: 'deneb',
12
+ electra: 'electra',
13
+ };
14
+ export const fetchBeaconHeader = async (stateId, clURL) => {
15
+ const url = clURL || getConfig().CL_URL;
16
+ try {
17
+ const beaconHeaderResp = await fetch(`${url}${endpoints.beaconHeader(stateId)}`);
18
+ return beaconHeaderResp.json();
19
+ }
20
+ catch (error) {
21
+ printError(error, 'Error fetching beacon header');
22
+ throw error;
23
+ }
24
+ };
25
+ export const fetchBeaconState = async (stateId, clURL) => {
26
+ const url = clURL || getConfig().CL_URL;
27
+ try {
28
+ const beaconStateResp = await fetch(`${url}${endpoints.state(stateId)}`, {
29
+ headers: { accept: 'application/octet-stream' },
30
+ });
31
+ const { headers } = beaconStateResp;
32
+ const forkName = headers.get('eth-consensus-version');
33
+ // Checks
34
+ if (!(forkName in SupportedFork))
35
+ throw new Error(`Fork name [${forkName}] is not supported`);
36
+ const stateBodyBytes = await beaconStateResp.arrayBuffer();
37
+ if (!stateBodyBytes)
38
+ throw new Error('Beacon state body bytes are not found');
39
+ return { stateBodyBytes, forkName };
40
+ }
41
+ catch (error) {
42
+ printError(error, 'Error fetching beacon state');
43
+ throw error;
44
+ }
45
+ };
46
+ export const fetchBeaconHeaderByParentRoot = async (parentRoot, clURL) => {
47
+ const url = clURL || getConfig().CL_URL;
48
+ try {
49
+ const beaconHeaderResp = await fetch(`${url}${endpoints.beaconHeadersByParentRoot(parentRoot)}`);
50
+ return beaconHeaderResp.json();
51
+ }
52
+ catch (error) {
53
+ printError(error, 'Error fetching beacon header by parent root');
54
+ throw error;
55
+ }
56
+ };
57
+ //# sourceMappingURL=fetchCL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchCL.js","sourceRoot":"","sources":["../../utils/fetchCL.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAWnC,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,uBAAuB;IAChC,YAAY,EAAE,CAAC,OAAgB,EAAU,EAAE,CACzC,yBAAyB,OAAO,EAAE;IACpC,yBAAyB,EAAE,CAAC,UAAmB,EAAU,EAAE,CACzD,qCAAqC,UAAU,EAAE;IACnD,KAAK,EAAE,CAAC,OAAgB,EAAU,EAAE,CAAC,8BAA8B,OAAO,EAAE;CAC7E,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAgB,EAAE,KAAc,EAAE,EAAE;IAC1E,MAAM,GAAG,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,MAAM,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAClC,GAAG,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAC3C,CAAC;QAEF,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;QAClD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAgB,EAChB,KAAc,EAIb,EAAE;IACH,MAAM,GAAG,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,MAAM,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;YACvE,OAAO,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE;SAChD,CAAC,CAAC;QAEH,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAC1B,uBAAuB,CACM,CAAC;QAEhC,SAAS;QACT,IAAI,CAAC,CAAC,QAAQ,IAAI,aAAa,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,oBAAoB,CAAC,CAAC;QAE9D,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;QAC3D,IAAI,CAAC,cAAc;YACjB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAE3D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;QACjD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAChD,UAAmB,EACnB,KAAc,EACd,EAAE;IACF,MAAM,GAAG,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,MAAM,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAClC,GAAG,GAAG,GAAG,SAAS,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAC3D,CAAC;QAEF,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,6CAA6C,CAAC,CAAC;QAEjE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const getCommandsJson: (program: Command) => string;
@@ -0,0 +1,11 @@
1
+ export const getCommandsJson = (program) => {
2
+ return JSON.stringify(program.commands.map((x) => {
3
+ const command = `${x.name()} ${x.alias() !== undefined ? x.alias() : ''}${x.registeredArguments?.map((y) => `\\<${y.name()}>`).join(' ') ||
4
+ ''}`;
5
+ return {
6
+ Command: command,
7
+ Description: x.description(),
8
+ };
9
+ }));
10
+ };
11
+ //# sourceMappingURL=get-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-commands.js","sourceRoot":"","sources":["../../utils/get-commands.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE;IAClD,OAAO,IAAI,CAAC,SAAS,CACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GACrE,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACnE,EACF,EAAE,CAAC;QACH,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;SAC7B,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * - pubkey: bytes
3
+ * - withdrawalCredentials: bytes
4
+ * - signature: bytes
5
+ * - amountETH: bigint or string (in ETH)
6
+ */
7
+ export declare const computeDepositDataRoot: (pubkey: string, withdrawalCredentials: string, signature: string, amountWei: bigint | string) => string;
@@ -0,0 +1,40 @@
1
+ import { fromHex, sha256Concat, encodeGweiAsLittleEndian8, } from './proof/index.js';
2
+ /**
3
+ * - pubkey: bytes
4
+ * - withdrawalCredentials: bytes
5
+ * - signature: bytes
6
+ * - amountETH: bigint or string (in ETH)
7
+ */
8
+ export const computeDepositDataRoot = (pubkey, withdrawalCredentials, signature, amountWei) => {
9
+ const pubkeyBytes = fromHex(pubkey);
10
+ const withdrawalCredentialsBytes = fromHex(withdrawalCredentials);
11
+ const signatureBytes = fromHex(signature);
12
+ // 1) Convert amount from ETH to gwei
13
+ const amountWeiBN = typeof amountWei !== 'bigint' ? BigInt(amountWei) : amountWei;
14
+ const amountGwei = amountWeiBN / 1000000000n;
15
+ // 2) Get 8 bytes little-endian
16
+ const amountLE64 = encodeGweiAsLittleEndian8(amountGwei);
17
+ // 3) pubkeyRoot = sha256(pubkey + 16 zero bytes)
18
+ const pubkeyRoot = sha256Concat(pubkeyBytes, new Uint8Array(16));
19
+ // 4) signatureRoot
20
+ // - sigSlice1Root = sha256(signature[0..64])
21
+ // - sigSlice2Root = sha256(signature[64..end] + 32 zero bytes)
22
+ // - signatureRoot = sha256(sigSlice1Root + sigSlice2Root)
23
+ const sigSlice1 = signatureBytes.slice(0, 64); // first 64 bytes
24
+ const sigSlice2 = signatureBytes.slice(64); // remaining (usually 32 bytes)
25
+ const sigSlice1Root = sha256Concat(sigSlice1);
26
+ const sigSlice2Root = sha256Concat(sigSlice2, new Uint8Array(32));
27
+ const signatureRoot = sha256Concat(sigSlice1Root, sigSlice2Root);
28
+ // 5) Sum all, as in Solidity:
29
+ // depositDataRoot = sha256(
30
+ // sha256(pubkeyRoot, withdrawalCredentials),
31
+ // sha256(amountLE64, 24 нулевых байт, signatureRoot)
32
+ // )
33
+ const part1 = sha256Concat(pubkeyRoot, withdrawalCredentialsBytes);
34
+ const part2 = sha256Concat(amountLE64, new Uint8Array(24), // 24 нулевых
35
+ signatureRoot);
36
+ const depositDataRoot = sha256Concat(part1, part2);
37
+ // Return in hex-string format '0x...'
38
+ return '0x' + Buffer.from(depositDataRoot).toString('hex');
39
+ };
40
+ //# sourceMappingURL=get-deposit-data-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-deposit-data-root.js","sourceRoot":"","sources":["../../utils/get-deposit-data-root.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,YAAY,EACZ,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAc,EACd,qBAA6B,EAC7B,SAAiB,EACjB,SAA0B,EAClB,EAAE;IACV,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,0BAA0B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,qCAAqC;IACrC,MAAM,WAAW,GACf,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,MAAM,UAAU,GAAG,WAAW,GAAG,WAAc,CAAC;IAEhD,+BAA+B;IAC/B,MAAM,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAEzD,iDAAiD;IACjD,MAAM,UAAU,GAAG,YAAY,CAC7B,WAAW,EACX,IAAI,UAAU,CAAC,EAAE,CAAC,CACnB,CAAC;IAEF,mBAAmB;IACnB,gDAAgD;IAChD,kEAAkE;IAClE,6DAA6D;IAC7D,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB;IAChE,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,+BAA+B;IAC3E,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,YAAY,CAChC,SAAS,EACT,IAAI,UAAU,CAAC,EAAE,CAAC,CACnB,CAAC;IACF,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAEjE,8BAA8B;IAC9B,+BAA+B;IAC/B,mDAAmD;IACnD,2DAA2D;IAC3D,OAAO;IACP,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,YAAY,CACxB,UAAU,EACV,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,aAAa;IACjC,aAAa,CACd,CAAC;IACF,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEnD,sCAAsC;IACtC,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const getValueByPath: <T extends Record<string, unknown>>(obj: T, path: string) => unknown;
@@ -1,14 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getValueByPath = void 0;
4
- const getValueByPath = (obj, path) => {
5
- const segments = path.split(".");
1
+ export const getValueByPath = (obj, path) => {
2
+ const segments = path.split('.');
6
3
  let current = obj;
7
- for (let i = 0; i < segments.length; i++) {
8
- if (typeof current === "object" &&
9
- current !== null &&
10
- segments[i] in current) {
11
- current = current[segments[i]];
4
+ for (const segment of segments) {
5
+ if (typeof current === 'object' && current !== null && segment in current) {
6
+ current = current[segment];
12
7
  }
13
8
  else {
14
9
  return undefined;
@@ -16,5 +11,4 @@ const getValueByPath = (obj, path) => {
16
11
  }
17
12
  return current;
18
13
  };
19
- exports.getValueByPath = getValueByPath;
20
14
  //# sourceMappingURL=get-value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-value.js","sourceRoot":"","sources":["../../utils/get-value.ts"],"names":[],"mappings":";;;AAAO,MAAM,cAAc,GAAG,CAC5B,GAAM,EACN,IAAY,EACZ,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IACE,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,KAAK,IAAI;YACf,QAAQ,CAAC,CAAC,CAAY,IAAI,OAAO,EAClC,CAAC;YACD,OAAO,GAAI,OAAa,CAAC,QAAQ,CAAC,CAAC,CAAW,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AApBW,QAAA,cAAc,kBAoBzB"}
1
+ {"version":3,"file":"get-value.js","sourceRoot":"","sources":["../../utils/get-value.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,GAAM,EACN,IAAY,EACZ,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YAC1E,OAAO,GAAI,OAAa,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ type CalculateHealthArgs = {
2
+ totalValue: bigint;
3
+ liabilitySharesInStethWei: bigint;
4
+ forceRebalanceThresholdBP: number;
5
+ };
6
+ export declare const calculateHealth: (args: CalculateHealthArgs) => {
7
+ healthRatio: number;
8
+ healthRatio18: number | bigint;
9
+ isHealthy: boolean;
10
+ };
11
+ export {};
@@ -0,0 +1,22 @@
1
+ export const calculateHealth = (args) => {
2
+ const { totalValue, liabilitySharesInStethWei, forceRebalanceThresholdBP } = args;
3
+ // Convert everything to BigInt and perform calculations with 1e18 precision
4
+ const BASIS_POINTS_DENOMINATOR = 10000n;
5
+ const PRECISION = 10n ** 18n;
6
+ const thresholdMultiplier = ((BASIS_POINTS_DENOMINATOR - BigInt(forceRebalanceThresholdBP)) *
7
+ PRECISION) /
8
+ BASIS_POINTS_DENOMINATOR;
9
+ const adjustedValuation = (totalValue * thresholdMultiplier) / PRECISION;
10
+ const healthRatio18 = liabilitySharesInStethWei > 0n
11
+ ? (adjustedValuation * PRECISION * 100n) / liabilitySharesInStethWei
12
+ : Infinity;
13
+ const healthRatio = Number(healthRatio18) / 1e18;
14
+ // Convert to readable format
15
+ const isHealthy = healthRatio >= 100;
16
+ return {
17
+ healthRatio,
18
+ healthRatio18,
19
+ isHealthy,
20
+ };
21
+ };
22
+ //# sourceMappingURL=calculate-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate-health.js","sourceRoot":"","sources":["../../../utils/health/calculate-health.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAyB,EAAE,EAAE;IAC3D,MAAM,EAAE,UAAU,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,GACxE,IAAI,CAAC;IACP,4EAA4E;IAC5E,MAAM,wBAAwB,GAAG,MAAO,CAAC;IACzC,MAAM,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC;IAE7B,MAAM,mBAAmB,GACvB,CAAC,CAAC,wBAAwB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAC7D,SAAS,CAAC;QACZ,wBAAwB,CAAC;IAC3B,MAAM,iBAAiB,GAAG,CAAC,UAAU,GAAG,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAEzE,MAAM,aAAa,GACjB,yBAAyB,GAAG,EAAE;QAC5B,CAAC,CAAC,CAAC,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,yBAAyB;QACpE,CAAC,CAAC,QAAQ,CAAC;IACf,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IAEjD,6BAA6B;IAC7B,MAAM,SAAS,GAAG,WAAW,IAAI,GAAG,CAAC;IAErC,OAAO;QACL,WAAW;QACX,aAAa;QACb,SAAS;KACV,CAAC;AACJ,CAAC,CAAC"}