@lidofinance/lsv-cli 1.0.0-alpha.5 → 1.0.0-alpha.51

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 (586) hide show
  1. package/README.md +41 -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 +1866 -0
  9. package/dist/abi/Dashboard.js +1924 -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 +1075 -0
  15. package/dist/abi/OperatorGrid.js +1188 -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 +1085 -0
  27. package/dist/abi/StakingVault.js +1115 -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 +664 -0
  33. package/dist/abi/VaultFactory.js +213 -0
  34. package/dist/abi/VaultFactory.js.map +1 -0
  35. package/dist/abi/VaultHub.d.ts +1882 -0
  36. package/dist/abi/VaultHub.js +1259 -435
  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 +7 -5
  52. package/dist/command/index.js.map +1 -1
  53. package/dist/configs/constants.d.ts +34 -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 +13 -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 +10742 -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 +259 -0
  118. package/dist/features/dashboard.js.map +1 -0
  119. package/dist/features/index.d.ts +6 -0
  120. package/dist/features/index.js +7 -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 +64 -0
  124. package/dist/features/operator-grid.js.map +1 -0
  125. package/dist/features/pdg.d.ts +4 -0
  126. package/dist/features/pdg.js +116 -0
  127. package/dist/features/pdg.js.map +1 -0
  128. package/dist/features/token-manager.d.ts +1 -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 +13 -0
  132. package/dist/features/vault-factory.js +63 -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 +88 -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 +56 -0
  139. package/dist/features/vault.js.map +1 -0
  140. package/dist/index.d.ts +3 -0
  141. package/dist/index.js +8 -5
  142. package/dist/index.js.map +1 -1
  143. package/dist/programs/account/index.d.ts +3 -0
  144. package/dist/programs/account/index.js +4 -0
  145. package/dist/programs/account/index.js.map +1 -0
  146. package/dist/programs/account/main.d.ts +1 -0
  147. package/dist/programs/account/main.js +5 -0
  148. package/dist/programs/account/main.js.map +1 -0
  149. package/dist/programs/account/read.d.ts +1 -0
  150. package/dist/programs/account/read.js +109 -0
  151. package/dist/programs/account/read.js.map +1 -0
  152. package/dist/programs/account/write.d.ts +1 -0
  153. package/dist/programs/account/write.js +65 -0
  154. package/dist/programs/account/write.js.map +1 -0
  155. package/dist/programs/config.d.ts +1 -0
  156. package/dist/programs/config.js +31 -0
  157. package/dist/programs/config.js.map +1 -0
  158. package/dist/programs/dashboard/config.d.ts +2 -0
  159. package/dist/programs/dashboard/config.js +111 -0
  160. package/dist/programs/dashboard/config.js.map +1 -0
  161. package/dist/programs/dashboard/index.d.ts +3 -0
  162. package/dist/programs/dashboard/index.js +4 -0
  163. package/dist/programs/dashboard/index.js.map +1 -0
  164. package/dist/programs/dashboard/main.d.ts +1 -0
  165. package/dist/programs/dashboard/main.js +5 -0
  166. package/dist/programs/dashboard/main.js.map +1 -0
  167. package/dist/programs/dashboard/read.d.ts +1 -0
  168. package/dist/programs/dashboard/read.js +97 -0
  169. package/dist/programs/dashboard/read.js.map +1 -0
  170. package/dist/programs/dashboard/write.d.ts +1 -0
  171. package/dist/programs/dashboard/write.js +625 -0
  172. package/dist/programs/dashboard/write.js.map +1 -0
  173. package/dist/programs/hub/config.d.ts +2 -0
  174. package/dist/programs/hub/config.js +123 -0
  175. package/dist/programs/hub/config.js.map +1 -0
  176. package/dist/programs/hub/index.d.ts +3 -0
  177. package/dist/programs/hub/index.js +4 -0
  178. package/dist/programs/hub/index.js.map +1 -0
  179. package/dist/programs/hub/main.d.ts +1 -0
  180. package/dist/programs/hub/main.js +5 -0
  181. package/dist/programs/hub/main.js.map +1 -0
  182. package/dist/programs/hub/read.d.ts +1 -0
  183. package/dist/programs/hub/read.js +59 -0
  184. package/dist/programs/hub/read.js.map +1 -0
  185. package/dist/programs/hub/write.d.ts +1 -0
  186. package/dist/programs/hub/write.js +246 -0
  187. package/dist/programs/hub/write.js.map +1 -0
  188. package/dist/programs/index.d.ts +11 -0
  189. package/dist/programs/index.js +11 -17
  190. package/dist/programs/index.js.map +1 -1
  191. package/dist/programs/metrics/index.d.ts +2 -0
  192. package/dist/programs/metrics/index.js +3 -0
  193. package/dist/programs/metrics/index.js.map +1 -0
  194. package/dist/programs/metrics/main.d.ts +1 -0
  195. package/dist/programs/metrics/main.js +3 -0
  196. package/dist/programs/metrics/main.js.map +1 -0
  197. package/dist/programs/metrics/read.d.ts +1 -0
  198. package/dist/programs/metrics/read.js +110 -0
  199. package/dist/programs/metrics/read.js.map +1 -0
  200. package/dist/programs/operator-grid/config.d.ts +2 -0
  201. package/dist/programs/operator-grid/config.js +81 -0
  202. package/dist/programs/operator-grid/config.js.map +1 -0
  203. package/dist/programs/operator-grid/index.d.ts +3 -0
  204. package/dist/programs/operator-grid/index.js +4 -0
  205. package/dist/programs/operator-grid/index.js.map +1 -0
  206. package/dist/programs/operator-grid/main.d.ts +1 -0
  207. package/dist/programs/operator-grid/main.js +5 -0
  208. package/dist/programs/operator-grid/main.js.map +1 -0
  209. package/dist/programs/operator-grid/read.d.ts +1 -0
  210. package/dist/programs/operator-grid/read.js +30 -0
  211. package/dist/programs/operator-grid/read.js.map +1 -0
  212. package/dist/programs/operator-grid/write.d.ts +1 -0
  213. package/dist/programs/operator-grid/write.js +124 -0
  214. package/dist/programs/operator-grid/write.js.map +1 -0
  215. package/dist/programs/pdg/config.d.ts +2 -0
  216. package/dist/programs/pdg/config.js +134 -0
  217. package/dist/programs/pdg/config.js.map +1 -0
  218. package/dist/programs/pdg/index.d.ts +3 -0
  219. package/dist/programs/pdg/index.js +4 -0
  220. package/dist/programs/pdg/index.js.map +1 -0
  221. package/dist/programs/pdg/main.d.ts +1 -0
  222. package/dist/programs/pdg/main.js +5 -0
  223. package/dist/programs/pdg/main.js.map +1 -0
  224. package/dist/programs/pdg/read.d.ts +1 -0
  225. package/dist/programs/pdg/read.js +38 -0
  226. package/dist/programs/pdg/read.js.map +1 -0
  227. package/dist/programs/pdg/write.d.ts +1 -0
  228. package/dist/programs/pdg/write.js +370 -0
  229. package/dist/programs/pdg/write.js.map +1 -0
  230. package/dist/programs/pdg-helpers.d.ts +1 -0
  231. package/dist/programs/pdg-helpers.js +221 -0
  232. package/dist/programs/pdg-helpers.js.map +1 -0
  233. package/dist/programs/report/index.d.ts +3 -0
  234. package/dist/programs/report/index.js +4 -0
  235. package/dist/programs/report/index.js.map +1 -0
  236. package/dist/programs/report/main.d.ts +1 -0
  237. package/dist/programs/report/main.js +3 -0
  238. package/dist/programs/report/main.js.map +1 -0
  239. package/dist/programs/report/read.d.ts +1 -0
  240. package/dist/programs/report/read.js +93 -0
  241. package/dist/programs/report/read.js.map +1 -0
  242. package/dist/programs/report/write.d.ts +1 -0
  243. package/dist/programs/report/write.js +125 -0
  244. package/dist/programs/report/write.js.map +1 -0
  245. package/dist/programs/vault/config.d.ts +2 -0
  246. package/dist/programs/vault/config.js +70 -0
  247. package/dist/programs/vault/config.js.map +1 -0
  248. package/dist/programs/vault/index.d.ts +3 -0
  249. package/dist/programs/vault/index.js +4 -0
  250. package/dist/programs/vault/index.js.map +1 -0
  251. package/dist/programs/vault/main.d.ts +1 -0
  252. package/dist/programs/vault/main.js +3 -0
  253. package/dist/programs/vault/main.js.map +1 -0
  254. package/dist/programs/vault/read.d.ts +1 -0
  255. package/dist/programs/vault/read.js +25 -0
  256. package/dist/programs/vault/read.js.map +1 -0
  257. package/dist/programs/vault/write.d.ts +1 -0
  258. package/dist/programs/vault/write.js +247 -0
  259. package/dist/programs/vault/write.js.map +1 -0
  260. package/dist/programs/vault-factory/config.d.ts +2 -0
  261. package/dist/programs/vault-factory/config.js +2 -0
  262. package/dist/programs/vault-factory/config.js.map +1 -0
  263. package/dist/programs/vault-factory/index.d.ts +3 -0
  264. package/dist/programs/vault-factory/index.js +4 -0
  265. package/dist/programs/vault-factory/index.js.map +1 -0
  266. package/dist/programs/vault-factory/main.d.ts +1 -0
  267. package/dist/programs/vault-factory/main.js +5 -0
  268. package/dist/programs/vault-factory/main.js.map +1 -0
  269. package/dist/programs/vault-factory/read.d.ts +1 -0
  270. package/dist/programs/vault-factory/read.js +24 -0
  271. package/dist/programs/vault-factory/read.js.map +1 -0
  272. package/dist/programs/vault-factory/write.d.ts +1 -0
  273. package/dist/programs/vault-factory/write.js +86 -0
  274. package/dist/programs/vault-factory/write.js.map +1 -0
  275. package/dist/programs/vault-viewer/config.d.ts +2 -0
  276. package/dist/programs/vault-viewer/config.js +120 -0
  277. package/dist/programs/vault-viewer/config.js.map +1 -0
  278. package/dist/programs/vault-viewer/index.d.ts +2 -0
  279. package/dist/programs/vault-viewer/index.js +3 -0
  280. package/dist/programs/vault-viewer/index.js.map +1 -0
  281. package/dist/programs/vault-viewer/main.d.ts +1 -0
  282. package/dist/programs/vault-viewer/main.js +10 -0
  283. package/dist/programs/vault-viewer/main.js.map +1 -0
  284. package/dist/programs/vault-viewer/read.d.ts +1 -0
  285. package/dist/programs/vault-viewer/read.js +121 -0
  286. package/dist/programs/vault-viewer/read.js.map +1 -0
  287. package/dist/providers/index.d.ts +1 -0
  288. package/dist/providers/index.js +1 -17
  289. package/dist/providers/index.js.map +1 -1
  290. package/dist/providers/wallet.d.ts +6897 -0
  291. package/dist/providers/wallet.js +44 -28
  292. package/dist/providers/wallet.js.map +1 -1
  293. package/dist/tests/__mocks__/@lodestar/types.d.ts +1 -0
  294. package/dist/tests/__mocks__/@lodestar/types.js +6 -0
  295. package/dist/tests/__mocks__/@lodestar/types.js.map +1 -0
  296. package/dist/tests/utils/arguments.test.d.ts +1 -0
  297. package/dist/tests/utils/arguments.test.js +92 -0
  298. package/dist/tests/utils/arguments.test.js.map +1 -0
  299. package/dist/tests/utils/calculate-overview.test.d.ts +1 -0
  300. package/dist/tests/utils/calculate-overview.test.js +30 -0
  301. package/dist/tests/utils/calculate-overview.test.js.map +1 -0
  302. package/dist/tests/utils/data-validators.test.d.ts +1 -0
  303. package/dist/tests/utils/data-validators.test.js +56 -0
  304. package/dist/tests/utils/data-validators.test.js.map +1 -0
  305. package/dist/tests/utils/error-handler.test.d.ts +1 -0
  306. package/dist/tests/utils/error-handler.test.js +51 -0
  307. package/dist/tests/utils/error-handler.test.js.map +1 -0
  308. package/dist/tests/utils/fetchCL.test.d.ts +1 -0
  309. package/dist/tests/utils/fetchCL.test.js +57 -0
  310. package/dist/tests/utils/fetchCL.test.js.map +1 -0
  311. package/dist/tests/utils/get-commands.test.d.ts +1 -0
  312. package/dist/tests/utils/get-commands.test.js +19 -0
  313. package/dist/tests/utils/get-commands.test.js.map +1 -0
  314. package/dist/tests/utils/get-deposit-data-root.test.d.ts +1 -0
  315. package/dist/tests/utils/get-deposit-data-root.test.js +31 -0
  316. package/dist/tests/utils/get-deposit-data-root.test.js.map +1 -0
  317. package/dist/tests/utils/get-value.test.d.ts +1 -0
  318. package/dist/tests/utils/get-value.test.js +13 -0
  319. package/dist/tests/utils/get-value.test.js.map +1 -0
  320. package/dist/tests/utils/health.test.d.ts +1 -0
  321. package/dist/tests/utils/health.test.js +22 -0
  322. package/dist/tests/utils/health.test.js.map +1 -0
  323. package/dist/tests/utils/interrupt-handler.test.d.ts +1 -0
  324. package/dist/tests/utils/interrupt-handler.test.js +15 -0
  325. package/dist/tests/utils/interrupt-handler.test.js.map +1 -0
  326. package/dist/tests/utils/ipfs.test.d.ts +1 -0
  327. package/dist/tests/utils/ipfs.test.js +98 -0
  328. package/dist/tests/utils/ipfs.test.js.map +1 -0
  329. package/dist/tests/utils/logging.test.d.ts +1 -0
  330. package/dist/tests/utils/logging.test.js +23 -0
  331. package/dist/tests/utils/logging.test.js.map +1 -0
  332. package/dist/tests/utils/report-proof.test.d.ts +1 -0
  333. package/dist/tests/utils/report-proof.test.js +29 -0
  334. package/dist/tests/utils/report-proof.test.js.map +1 -0
  335. package/dist/tests/utils/report-statistic.test.d.ts +1 -0
  336. package/dist/tests/utils/report-statistic.test.js +247 -0
  337. package/dist/tests/utils/report-statistic.test.js.map +1 -0
  338. package/dist/tests/utils/required-lock.test.d.ts +1 -0
  339. package/dist/tests/utils/required-lock.test.js +26 -0
  340. package/dist/tests/utils/required-lock.test.js.map +1 -0
  341. package/dist/tests/utils/resove-path.test.d.ts +1 -0
  342. package/dist/tests/utils/resove-path.test.js +18 -0
  343. package/dist/tests/utils/resove-path.test.js.map +1 -0
  344. package/dist/tests/utils/sleep.test.d.ts +1 -0
  345. package/dist/tests/utils/sleep.test.js +14 -0
  346. package/dist/tests/utils/sleep.test.js.map +1 -0
  347. package/dist/types/common.d.ts +31 -0
  348. package/dist/types/common.js +2 -0
  349. package/dist/types/common.js.map +1 -0
  350. package/dist/types/config.d.ts +25 -0
  351. package/dist/types/config.js +2 -0
  352. package/dist/types/config.js.map +1 -0
  353. package/dist/types/index.d.ts +2 -0
  354. package/dist/types/index.js +3 -0
  355. package/dist/types/index.js.map +1 -0
  356. package/dist/utils/arguments.d.ts +14 -0
  357. package/dist/utils/arguments.js +70 -0
  358. package/dist/utils/arguments.js.map +1 -0
  359. package/dist/utils/bls.d.ts +21 -0
  360. package/dist/utils/bls.js +101 -0
  361. package/dist/utils/bls.js.map +1 -0
  362. package/dist/utils/cache.d.ts +18 -0
  363. package/dist/utils/cache.js +109 -0
  364. package/dist/utils/cache.js.map +1 -0
  365. package/dist/utils/calculate-overview-v2.d.ts +28 -0
  366. package/dist/utils/calculate-overview-v2.js +57 -0
  367. package/dist/utils/calculate-overview-v2.js.map +1 -0
  368. package/dist/utils/calculate-overview.d.ts +29 -0
  369. package/dist/utils/calculate-overview.js +59 -0
  370. package/dist/utils/calculate-overview.js.map +1 -0
  371. package/dist/utils/charts/blessed/charts-apr.d.ts +98 -0
  372. package/dist/utils/charts/blessed/charts-apr.js +118 -0
  373. package/dist/utils/charts/blessed/charts-apr.js.map +1 -0
  374. package/dist/utils/charts/blessed/charts-rewards.d.ts +74 -0
  375. package/dist/utils/charts/blessed/charts-rewards.js +106 -0
  376. package/dist/utils/charts/blessed/charts-rewards.js.map +1 -0
  377. package/dist/utils/charts/blessed/constants.d.ts +22 -0
  378. package/dist/utils/charts/blessed/constants.js +23 -0
  379. package/dist/utils/charts/blessed/constants.js.map +1 -0
  380. package/dist/utils/charts/blessed/datasets/bottom-line.d.ts +19 -0
  381. package/dist/utils/charts/blessed/datasets/bottom-line.js +34 -0
  382. package/dist/utils/charts/blessed/datasets/bottom-line.js.map +1 -0
  383. package/dist/utils/charts/blessed/datasets/efficiency.d.ts +18 -0
  384. package/dist/utils/charts/blessed/datasets/efficiency.js +33 -0
  385. package/dist/utils/charts/blessed/datasets/efficiency.js.map +1 -0
  386. package/dist/utils/charts/blessed/datasets/gross-staking-apr.d.ts +18 -0
  387. package/dist/utils/charts/blessed/datasets/gross-staking-apr.js +33 -0
  388. package/dist/utils/charts/blessed/datasets/gross-staking-apr.js.map +1 -0
  389. package/dist/utils/charts/blessed/datasets/gross-staking-rewards.d.ts +24 -0
  390. package/dist/utils/charts/blessed/datasets/gross-staking-rewards.js +39 -0
  391. package/dist/utils/charts/blessed/datasets/gross-staking-rewards.js.map +1 -0
  392. package/dist/utils/charts/blessed/datasets/index.d.ts +9 -0
  393. package/dist/utils/charts/blessed/datasets/index.js +10 -0
  394. package/dist/utils/charts/blessed/datasets/index.js.map +1 -0
  395. package/dist/utils/charts/blessed/datasets/lido-apr.d.ts +19 -0
  396. package/dist/utils/charts/blessed/datasets/lido-apr.js +34 -0
  397. package/dist/utils/charts/blessed/datasets/lido-apr.js.map +1 -0
  398. package/dist/utils/charts/blessed/datasets/net-staking-apr.d.ts +18 -0
  399. package/dist/utils/charts/blessed/datasets/net-staking-apr.js +33 -0
  400. package/dist/utils/charts/blessed/datasets/net-staking-apr.js.map +1 -0
  401. package/dist/utils/charts/blessed/datasets/net-staking-rewards.d.ts +18 -0
  402. package/dist/utils/charts/blessed/datasets/net-staking-rewards.js +33 -0
  403. package/dist/utils/charts/blessed/datasets/net-staking-rewards.js.map +1 -0
  404. package/dist/utils/charts/blessed/datasets/node-operator-rewards.d.ts +24 -0
  405. package/dist/utils/charts/blessed/datasets/node-operator-rewards.js +39 -0
  406. package/dist/utils/charts/blessed/datasets/node-operator-rewards.js.map +1 -0
  407. package/dist/utils/charts/blessed/datasets/prepare-metrics.d.ts +33 -0
  408. package/dist/utils/charts/blessed/datasets/prepare-metrics.js +133 -0
  409. package/dist/utils/charts/blessed/datasets/prepare-metrics.js.map +1 -0
  410. package/dist/utils/charts/blessed/datasets/types.d.ts +4 -0
  411. package/dist/utils/charts/blessed/datasets/types.js +2 -0
  412. package/dist/utils/charts/blessed/datasets/types.js.map +1 -0
  413. package/dist/utils/charts/blessed/index.d.ts +3 -0
  414. package/dist/utils/charts/blessed/index.js +4 -0
  415. package/dist/utils/charts/blessed/index.js.map +1 -0
  416. package/dist/utils/charts/blessed/net-vs-lido-apr.d.ts +13 -0
  417. package/dist/utils/charts/blessed/net-vs-lido-apr.js +19 -0
  418. package/dist/utils/charts/blessed/net-vs-lido-apr.js.map +1 -0
  419. package/dist/utils/charts/blessed/utils.d.ts +62 -0
  420. package/dist/utils/charts/blessed/utils.js +84 -0
  421. package/dist/utils/charts/blessed/utils.js.map +1 -0
  422. package/dist/utils/charts/index.d.ts +3 -0
  423. package/dist/utils/charts/index.js +4 -0
  424. package/dist/utils/charts/index.js.map +1 -0
  425. package/dist/utils/charts/metrics.d.ts +16 -0
  426. package/dist/utils/charts/metrics.js +160 -0
  427. package/dist/utils/charts/metrics.js.map +1 -0
  428. package/dist/utils/charts/overview.d.ts +10 -0
  429. package/dist/utils/charts/overview.js +89 -0
  430. package/dist/utils/charts/overview.js.map +1 -0
  431. package/dist/utils/charts/simple/index.d.ts +1 -0
  432. package/dist/utils/charts/simple/index.js +2 -0
  433. package/dist/utils/charts/simple/index.js.map +1 -0
  434. package/dist/utils/charts/simple/simple-charts.d.ts +2 -0
  435. package/dist/utils/charts/simple/simple-charts.js +81 -0
  436. package/dist/utils/charts/simple/simple-charts.js.map +1 -0
  437. package/dist/utils/commands/confirmations.d.ts +21 -0
  438. package/dist/utils/commands/confirmations.js +99 -0
  439. package/dist/utils/commands/confirmations.js.map +1 -0
  440. package/dist/utils/commands/dashboard.d.ts +6 -0
  441. package/dist/utils/commands/dashboard.js +145 -0
  442. package/dist/utils/commands/dashboard.js.map +1 -0
  443. package/dist/utils/commands/index.d.ts +4 -0
  444. package/dist/utils/commands/index.js +5 -0
  445. package/dist/utils/commands/index.js.map +1 -0
  446. package/dist/utils/commands/report.d.ts +7 -0
  447. package/dist/utils/commands/report.js +43 -0
  448. package/dist/utils/commands/report.js.map +1 -0
  449. package/dist/utils/commands/utils.d.ts +6 -0
  450. package/dist/utils/commands/utils.js +57 -0
  451. package/dist/utils/commands/utils.js.map +1 -0
  452. package/dist/utils/contract.d.ts +57 -0
  453. package/dist/utils/contract.js +212 -0
  454. package/dist/utils/contract.js.map +1 -0
  455. package/dist/utils/data-validators.d.ts +6 -0
  456. package/dist/utils/data-validators.js +54 -0
  457. package/dist/utils/data-validators.js.map +1 -0
  458. package/dist/utils/error-handler.d.ts +1 -0
  459. package/dist/utils/error-handler.js +13 -0
  460. package/dist/utils/error-handler.js.map +1 -0
  461. package/dist/utils/fetchCL.d.ts +14 -0
  462. package/dist/utils/fetchCL.js +57 -0
  463. package/dist/utils/fetchCL.js.map +1 -0
  464. package/dist/utils/get-commands.d.ts +2 -0
  465. package/dist/utils/get-commands.js +11 -0
  466. package/dist/utils/get-commands.js.map +1 -0
  467. package/dist/utils/get-deposit-data-root.d.ts +7 -0
  468. package/dist/utils/get-deposit-data-root.js +37 -0
  469. package/dist/utils/get-deposit-data-root.js.map +1 -0
  470. package/dist/utils/get-value.d.ts +1 -0
  471. package/dist/utils/get-value.js +5 -11
  472. package/dist/utils/get-value.js.map +1 -1
  473. package/dist/utils/health/calculate-health.d.ts +11 -0
  474. package/dist/utils/health/calculate-health.js +22 -0
  475. package/dist/utils/health/calculate-health.js.map +1 -0
  476. package/dist/utils/health/health-utils.d.ts +27743 -0
  477. package/dist/utils/health/health-utils.js +74 -0
  478. package/dist/utils/health/health-utils.js.map +1 -0
  479. package/dist/utils/health/index.d.ts +2 -0
  480. package/dist/utils/health/index.js +3 -0
  481. package/dist/utils/health/index.js.map +1 -0
  482. package/dist/utils/index.d.ts +30 -0
  483. package/dist/utils/index.js +30 -17
  484. package/dist/utils/index.js.map +1 -1
  485. package/dist/utils/interrupt-handler.d.ts +3 -0
  486. package/dist/utils/interrupt-handler.js +28 -0
  487. package/dist/utils/interrupt-handler.js.map +1 -0
  488. package/dist/utils/ipfs.d.ts +14 -0
  489. package/dist/utils/ipfs.js +94 -0
  490. package/dist/utils/ipfs.js.map +1 -0
  491. package/dist/utils/lido-apr.d.ts +2 -0
  492. package/dist/utils/lido-apr.js +8 -0
  493. package/dist/utils/lido-apr.js.map +1 -0
  494. package/dist/utils/logging/console.d.ts +15 -0
  495. package/dist/utils/logging/console.js +36 -0
  496. package/dist/utils/logging/console.js.map +1 -0
  497. package/dist/utils/logging/constants.d.ts +4 -0
  498. package/dist/utils/logging/constants.js +18 -0
  499. package/dist/utils/logging/constants.js.map +1 -0
  500. package/dist/utils/logging/index.d.ts +1 -0
  501. package/dist/utils/logging/index.js +2 -0
  502. package/dist/utils/logging/index.js.map +1 -0
  503. package/dist/utils/prompts/confirmations.d.ts +2 -0
  504. package/dist/utils/prompts/confirmations.js +18 -0
  505. package/dist/utils/prompts/confirmations.js.map +1 -0
  506. package/dist/utils/prompts/dashboard.d.ts +33 -0
  507. package/dist/utils/prompts/dashboard.js +45 -0
  508. package/dist/utils/prompts/dashboard.js.map +1 -0
  509. package/dist/utils/prompts/default.d.ts +4 -0
  510. package/dist/utils/prompts/default.js +20 -0
  511. package/dist/utils/prompts/default.js.map +1 -0
  512. package/dist/utils/prompts/index.d.ts +6 -0
  513. package/dist/utils/prompts/index.js +7 -0
  514. package/dist/utils/prompts/index.js.map +1 -0
  515. package/dist/utils/prompts/operations.d.ts +9 -0
  516. package/dist/utils/prompts/operations.js +45 -0
  517. package/dist/utils/prompts/operations.js.map +1 -0
  518. package/dist/utils/prompts/predeposit-guarantee.d.ts +3 -0
  519. package/dist/utils/prompts/predeposit-guarantee.js +22 -0
  520. package/dist/utils/prompts/predeposit-guarantee.js.map +1 -0
  521. package/dist/utils/prompts/vault.d.ts +2 -0
  522. package/dist/utils/prompts/vault.js +14 -0
  523. package/dist/utils/prompts/vault.js.map +1 -0
  524. package/dist/utils/proof/create-proof.d.ts +11 -0
  525. package/dist/utils/proof/create-proof.js +38 -0
  526. package/dist/utils/proof/create-proof.js.map +1 -0
  527. package/dist/utils/proof/first-validator-gindex.d.ts +1 -0
  528. package/dist/utils/proof/first-validator-gindex.js +32 -0
  529. package/dist/utils/proof/first-validator-gindex.js.map +1 -0
  530. package/dist/utils/proof/index.d.ts +4 -0
  531. package/dist/utils/proof/index.js +5 -0
  532. package/dist/utils/proof/index.js.map +1 -0
  533. package/dist/utils/proof/merkle-utils.d.ts +55 -0
  534. package/dist/utils/proof/merkle-utils.js +173 -0
  535. package/dist/utils/proof/merkle-utils.js.map +1 -0
  536. package/dist/utils/proof/proofs.d.ts +30 -0
  537. package/dist/utils/proof/proofs.js +52 -0
  538. package/dist/utils/proof/proofs.js.map +1 -0
  539. package/dist/utils/proof/report-proof.d.ts +5 -0
  540. package/dist/utils/proof/report-proof.js +26 -0
  541. package/dist/utils/proof/report-proof.js.map +1 -0
  542. package/dist/utils/read-programs-by-abi.d.ts +20 -0
  543. package/dist/utils/read-programs-by-abi.js +91 -0
  544. package/dist/utils/read-programs-by-abi.js.map +1 -0
  545. package/dist/utils/rebase-rewards.d.ts +8 -0
  546. package/dist/utils/rebase-rewards.js +6 -0
  547. package/dist/utils/rebase-rewards.js.map +1 -0
  548. package/dist/utils/report/index.d.ts +3 -0
  549. package/dist/utils/report/index.js +4 -0
  550. package/dist/utils/report/index.js.map +1 -0
  551. package/dist/utils/report/report-statistic.d.ts +52 -0
  552. package/dist/utils/report/report-statistic.js +128 -0
  553. package/dist/utils/report/report-statistic.js.map +1 -0
  554. package/dist/utils/report/report.d.ts +106 -0
  555. package/dist/utils/report/report.js +146 -0
  556. package/dist/utils/report/report.js.map +1 -0
  557. package/dist/utils/report/statistic-data.d.ts +32 -0
  558. package/dist/utils/report/statistic-data.js +29 -0
  559. package/dist/utils/report/statistic-data.js.map +1 -0
  560. package/dist/utils/required-lock.d.ts +5 -0
  561. package/dist/utils/required-lock.js +21 -0
  562. package/dist/utils/required-lock.js.map +1 -0
  563. package/dist/utils/resolve-path.d.ts +1 -0
  564. package/dist/utils/resolve-path.js +10 -0
  565. package/dist/utils/resolve-path.js.map +1 -0
  566. package/dist/utils/share-rate.d.ts +1 -0
  567. package/dist/utils/share-rate.js +16 -0
  568. package/dist/utils/share-rate.js.map +1 -0
  569. package/dist/utils/sleep.d.ts +1 -0
  570. package/dist/utils/sleep.js +4 -0
  571. package/dist/utils/sleep.js.map +1 -0
  572. package/dist/utils/spinner/constants.d.ts +6 -0
  573. package/dist/utils/spinner/constants.js +120 -0
  574. package/dist/utils/spinner/constants.js.map +1 -0
  575. package/dist/utils/spinner/index.d.ts +1 -0
  576. package/dist/utils/spinner/index.js +2 -0
  577. package/dist/utils/spinner/index.js.map +1 -0
  578. package/dist/utils/spinner/spinners.d.ts +7 -0
  579. package/dist/utils/spinner/spinners.js +16 -0
  580. package/dist/utils/spinner/spinners.js.map +1 -0
  581. package/dist/version/index.d.ts +1 -0
  582. package/dist/version/index.js +1 -0
  583. package/dist/version/index.js.map +1 -0
  584. package/package.json +76 -27
  585. package/dist/programs/vault-hub.js +0 -137
  586. package/dist/programs/vault-hub.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/prompts/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Address } from 'viem';
2
+ export declare const enterContractAddress: (name?: string) => Promise<import("prompts").Answers<"address">>;
3
+ export declare const confirmContractAndAmount: (contract: Address, amountETH: string) => Promise<import("prompts").Answers<"confirm">>;
4
+ export declare const enterAmountETH: () => Promise<import("prompts").Answers<"amountETH">>;
5
+ export declare const confirmFund: (address: Address, amountETH: string, name: string) => Promise<{
6
+ address: `0x${string}`;
7
+ amount: string;
8
+ }>;
9
+ export declare const confirmOperation: (message: string) => Promise<boolean>;
@@ -0,0 +1,45 @@
1
+ import { program } from '../../command/index.js';
2
+ import { logCancel } from '../index.js';
3
+ import { textPrompt, confirmPrompt } from './default.js';
4
+ export const enterContractAddress = async (name = 'contract') => {
5
+ return await textPrompt(`Enter ${name} address`, 'address');
6
+ };
7
+ export const confirmContractAndAmount = async (contract, amountETH) => {
8
+ return await confirmPrompt(`Do you want to fund the contract ${contract} with ${amountETH} ETH?`, 'confirm');
9
+ };
10
+ export const enterAmountETH = async () => {
11
+ return await textPrompt('Enter amount in ETH', 'amountETH');
12
+ };
13
+ export const confirmFund = async (address, amountETH, name) => {
14
+ let contractAddress = address;
15
+ let amount = amountETH;
16
+ if (!contractAddress) {
17
+ const answerAddress = await enterContractAddress(name);
18
+ contractAddress = answerAddress.address;
19
+ if (!contractAddress)
20
+ program.error('Command cancelled', { exitCode: 1 });
21
+ }
22
+ if (!amount) {
23
+ const answerAmount = await enterAmountETH();
24
+ amount = answerAmount.amountETH;
25
+ if (!amount)
26
+ program.error('Command cancelled', { exitCode: 1 });
27
+ }
28
+ const { confirm } = await confirmContractAndAmount(contractAddress, amount);
29
+ if (!confirm)
30
+ program.error('Command cancelled', { exitCode: 1 });
31
+ return { address: contractAddress, amount: amount };
32
+ };
33
+ export const confirmOperation = async (message) => {
34
+ // Check if --yes flag is provided
35
+ const opts = program.opts();
36
+ if (opts.yes)
37
+ return true;
38
+ const { confirm } = await confirmPrompt(message, 'confirm');
39
+ if (!confirm) {
40
+ logCancel('Command cancelled');
41
+ return false;
42
+ }
43
+ return true;
44
+ };
45
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../utils/prompts/operations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,IAAI,GAAG,UAAU,EAAE,EAAE;IAC9D,OAAO,MAAM,UAAU,CAAC,SAAS,IAAI,UAAU,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,QAAiB,EACjB,SAAiB,EACjB,EAAE;IACF,OAAO,MAAM,aAAa,CACxB,oCAAoC,QAAQ,SAAS,SAAS,OAAO,EACrE,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;IACvC,OAAO,MAAM,UAAU,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,OAAgB,EAChB,SAAiB,EACjB,IAAY,EACZ,EAAE;IACF,IAAI,eAAe,GAAmB,OAAO,CAAC;IAC9C,IAAI,MAAM,GAAkB,SAAS,CAAC;IAEtC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACvD,eAAe,GAAG,aAAa,CAAC,OAAkB,CAAC;QAEnD,IAAI,CAAC,eAAe;YAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,YAAY,GAAG,MAAM,cAAc,EAAE,CAAC;QAC5C,MAAM,GAAG,YAAY,CAAC,SAAmB,CAAC;QAE1C,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,wBAAwB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAElE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IACxD,kCAAkC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const enterValidatorIndex: () => Promise<import("prompts").Answers<"validatorIndex">>;
2
+ export declare const confirmValidatorIndex: (validatorIndex: bigint) => Promise<import("prompts").Answers<"confirm">>;
3
+ export declare const confirmMakeProof: (index: bigint) => Promise<bigint | void>;
@@ -0,0 +1,22 @@
1
+ import { textPrompt, confirmPrompt } from './default.js';
2
+ import { logCancel } from '../../utils/logging/console.js';
3
+ export const enterValidatorIndex = async () => {
4
+ return await textPrompt('Enter validator index', 'validatorIndex');
5
+ };
6
+ export const confirmValidatorIndex = async (validatorIndex) => {
7
+ return await confirmPrompt(`Do you want to make proof for validator ${validatorIndex}?`, 'confirm');
8
+ };
9
+ export const confirmMakeProof = async (index) => {
10
+ let validatorIndex = index;
11
+ if (validatorIndex === undefined) {
12
+ const answerValidatorIndex = await enterValidatorIndex();
13
+ validatorIndex = answerValidatorIndex.validatorIndex;
14
+ if (!validatorIndex)
15
+ return logCancel('Command cancelled');
16
+ }
17
+ const { confirm } = await confirmValidatorIndex(validatorIndex);
18
+ if (!confirm)
19
+ return logCancel('Command cancelled');
20
+ return validatorIndex;
21
+ };
22
+ //# sourceMappingURL=predeposit-guarantee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predeposit-guarantee.js","sourceRoot":"","sources":["../../../utils/prompts/predeposit-guarantee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;IAC5C,OAAO,MAAM,UAAU,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,cAAsB,EAAE,EAAE;IACpE,OAAO,MAAM,aAAa,CACxB,2CAA2C,cAAc,GAAG,EAC5D,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IACtD,IAAI,cAAc,GAAW,KAAK,CAAC;IAEnC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,oBAAoB,GAAG,MAAM,mBAAmB,EAAE,CAAC;QACzD,cAAc,GAAG,oBAAoB,CAAC,cAAc,CAAC;QAErD,IAAI,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAChE,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAEpD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { RoleAssignment, VaultWithDashboard } from '../../types/index.js';
2
+ export declare const confirmCreateVaultParams: (payload: VaultWithDashboard, otherRoles: RoleAssignment[]) => Promise<import("prompts").Answers<"confirm">>;
@@ -0,0 +1,14 @@
1
+ import { confirmPrompt } from './default.js';
2
+ export const confirmCreateVaultParams = async (payload, otherRoles) => {
3
+ return await confirmPrompt(`Do you want to create a vault with the following parameters?
4
+ ${JSON.stringify(payload, (_key, value) => {
5
+ if (typeof value === 'bigint') {
6
+ return value.toString();
7
+ }
8
+ return value;
9
+ }, 2)}
10
+ ${JSON.stringify(otherRoles, (_key, value) => {
11
+ return value;
12
+ }, 2)}`, 'confirm');
13
+ };
14
+ //# sourceMappingURL=vault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../utils/prompts/vault.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,OAA2B,EAC3B,UAA4B,EAC5B,EAAE;IACF,OAAO,MAAM,aAAa,CACxB;MACE,IAAI,CAAC,SAAS,CACd,OAAO,EACP,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,CACF;MACC,IAAI,CAAC,SAAS,CACd,UAAU,EACV,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACd,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,CACF,EAAE,EACH,SAAS,CACV,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Hex } from 'viem';
2
+ export interface ValidatorWitness {
3
+ proof: Hex[];
4
+ pubkey: Hex;
5
+ validatorIndex: bigint;
6
+ childBlockTimestamp: bigint;
7
+ }
8
+ export interface ValidatorWitnessWithWC extends ValidatorWitness {
9
+ withdrawalCredentials: Hex;
10
+ }
11
+ export declare const createPDGProof: (validatorIndex: number, clURL?: string) => Promise<ValidatorWitnessWithWC>;
@@ -0,0 +1,38 @@
1
+ import { toHex } from 'viem';
2
+ import { fetchBeaconHeader, fetchBeaconState, fetchBeaconHeaderByParentRoot, } from '../index.js';
3
+ import { createStateProof, createPubkeyWCProof, createBeaconHeaderProof, } from './proofs.js';
4
+ const SECONDS_PER_SLOT = 12;
5
+ const slotToTimestamp = (slot, genesisTimestamp) => {
6
+ return genesisTimestamp + slot * Number(SECONDS_PER_SLOT);
7
+ };
8
+ export const createPDGProof = async (validatorIndex, clURL) => {
9
+ const beaconHeaderJson = await fetchBeaconHeader('finalized', clURL);
10
+ const beaconHeader = beaconHeaderJson.data.header.message;
11
+ const { stateBodyBytes, forkName } = await fetchBeaconState('finalized', clURL);
12
+ // Proofs
13
+ // Beacon Header Proof
14
+ const { proof: beaconHeaderProof, root: beaconHeaderRoot } = await createBeaconHeaderProof(beaconHeader);
15
+ // Validator State Proof
16
+ const { proof: validatorStateProof, validator, view: validatorStateView, } = await createStateProof(validatorIndex, stateBodyBytes, forkName);
17
+ // Pubkey WC Proof
18
+ const { proof: pubkeyWCProof } = await createPubkeyWCProof(validator.node);
19
+ // Concatenate proofs
20
+ const proofConcat = [
21
+ ...pubkeyWCProof.witnesses,
22
+ ...validatorStateProof.witnesses,
23
+ ...beaconHeaderProof.witnesses,
24
+ ];
25
+ const proofHex = proofConcat.map((w) => toHex(w));
26
+ const headerByParentJson = await fetchBeaconHeaderByParentRoot(beaconHeaderRoot, clURL);
27
+ const headerByParentSlot = headerByParentJson.data[0].header.message.slot;
28
+ const headerByParentTimestamp = slotToTimestamp(headerByParentSlot, validatorStateView.genesisTime);
29
+ const result = {
30
+ proof: proofHex,
31
+ pubkey: toHex(validator.pubkey),
32
+ withdrawalCredentials: toHex(validator.withdrawalCredentials),
33
+ validatorIndex: BigInt(validatorIndex),
34
+ childBlockTimestamp: BigInt(headerByParentTimestamp),
35
+ };
36
+ return result;
37
+ };
38
+ //# sourceMappingURL=create-proof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-proof.js","sourceRoot":"","sources":["../../../utils/proof/create-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAa5B,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,gBAAwB,EAAU,EAAE;IACzE,OAAO,gBAAgB,GAAG,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,cAAsB,EACtB,KAAc,EACmB,EAAE;IACnC,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAE1D,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,gBAAgB,CACzD,WAAW,EACX,KAAK,CACN,CAAC;IAEF,SAAS;IAET,sBAAsB;IACtB,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,GACxD,MAAM,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAE9C,wBAAwB;IACxB,MAAM,EACJ,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EACT,IAAI,EAAE,kBAAkB,GACzB,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IAErE,kBAAkB;IAClB,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE3E,qBAAqB;IACrB,MAAM,WAAW,GAAG;QAClB,GAAG,aAAa,CAAC,SAAS;QAC1B,GAAG,mBAAmB,CAAC,SAAS;QAChC,GAAG,iBAAiB,CAAC,SAAS;KAC/B,CAAC;IAEF,MAAM,QAAQ,GAAU,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzD,MAAM,kBAAkB,GAAG,MAAM,6BAA6B,CAC5D,gBAAgB,EAChB,KAAK,CACN,CAAC;IACF,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1E,MAAM,uBAAuB,GAAG,eAAe,CAC7C,kBAAkB,EAClB,kBAAkB,CAAC,WAAW,CAC/B,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;QAC/B,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC;QAC7D,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC;QACtC,mBAAmB,EAAE,MAAM,CAAC,uBAAuB,CAAC;KACrD,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const getFirstValidatorGIndex: (forks: string[]) => void;
@@ -0,0 +1,32 @@
1
+ import { ssz } from '@lodestar/types';
2
+ import { logResult } from '../index.js';
3
+ const SupportedFork = {
4
+ deneb: 'deneb',
5
+ electra: 'electra',
6
+ };
7
+ export const getFirstValidatorGIndex = (forks) => {
8
+ const gIndexes = {};
9
+ for (const fork of forks) {
10
+ const Fork = ssz[fork];
11
+ const Validators = Fork.BeaconState.getPathInfo(['validators']).type;
12
+ const gI = pack(Fork.BeaconState.getPathInfo(['validators', 0]).gindex,
13
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
14
+ // @ts-ignore
15
+ Validators.limit);
16
+ gIndexes[fork] = toBytes32String(gI);
17
+ }
18
+ logResult({
19
+ data: Object.entries(gIndexes).map(([fork, gIndex]) => [fork, gIndex]),
20
+ params: {
21
+ head: ['Fork', 'GIndex'],
22
+ },
23
+ });
24
+ };
25
+ const pack = (gI, limit) => {
26
+ const width = limit ? BigInt(Math.log2(limit)) : 0n;
27
+ return (gI << 8n) | width;
28
+ };
29
+ const toBytes32String = (gI) => {
30
+ return `0x${gI.toString(16).padStart(64, '0')}`;
31
+ };
32
+ //# sourceMappingURL=first-validator-gindex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-validator-gindex.js","sourceRoot":"","sources":["../../../utils/proof/first-validator-gindex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,aAAa,GAAG;IACpB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAe,EAAE,EAAE;IACzD,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAkC,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAErE,MAAM,EAAE,GAAG,IAAI,CACb,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;QACtD,6DAA6D;QAC7D,aAAa;QACb,UAAU,CAAC,KAAK,CACjB,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,SAAS,CAAC;QACR,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;SACzB;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE;IACrC,OAAO,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AAClD,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './merkle-utils.js';
2
+ export * from './create-proof.js';
3
+ export * from './first-validator-gindex.js';
4
+ export * from './report-proof.js';
@@ -0,0 +1,5 @@
1
+ export * from './merkle-utils.js';
2
+ export * from './create-proof.js';
3
+ export * from './first-validator-gindex.js';
4
+ export * from './report-proof.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/proof/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { Hex } from 'viem';
2
+ export type Validator = {
3
+ pubkey: Uint8Array<ArrayBufferLike>;
4
+ withdrawalCredentials: Uint8Array<ArrayBufferLike>;
5
+ effectiveBalance: number;
6
+ slashed: boolean;
7
+ activationEligibilityEpoch: number;
8
+ activationEpoch: number;
9
+ exitEpoch: number | typeof Infinity;
10
+ withdrawableEpoch: number | typeof Infinity;
11
+ };
12
+ export type BeaconBlockHeader = {
13
+ slot: number;
14
+ proposer_index: number;
15
+ parent_root: string;
16
+ state_root: string;
17
+ body_root: string;
18
+ };
19
+ /** Hex -> bytes */
20
+ export declare const fromHex: (hex: string) => Uint8Array;
21
+ /** anything -> hex */
22
+ export declare const toHex: (value: unknown) => Hex;
23
+ /** sha256(32+32) => 32 */
24
+ export declare const sha256Pair: (left: Uint8Array, right: Uint8Array) => Uint8Array;
25
+ /**
26
+ * Helper for SHA-256 over multiple Uint8Array chunks.
27
+ * Returns a 32-byte hash (Uint8Array of length 32).
28
+ */
29
+ export declare const sha256Concat: (...chunks: Uint8Array[]) => Uint8Array;
30
+ /** 48 => 64 padded => sha256 => 32 */
31
+ export declare const pubkeyRoot: (pubkey48: Uint8Array) => Uint8Array;
32
+ /** uint64 => little-endian => pad => 32 */
33
+ export declare const uint64To32LE: (val: bigint) => Uint8Array;
34
+ /**
35
+ * Converts BigInt (gwei) to 8 bytes (big-endian), then reverses it to little-endian.
36
+ * Returns Uint8Array[8].
37
+ */
38
+ export declare const encodeGweiAsLittleEndian8: (amountGwei: bigint) => Uint8Array;
39
+ /** bool => 1 byte => 32 */
40
+ export declare const boolTo32: (b: boolean) => Uint8Array;
41
+ /**
42
+ * If value == Infinity, treat it as 2^64-1 (18446744073709551615)
43
+ * sentinel "Infinity" => max uint64
44
+ */
45
+ export declare const safeUint64: (value: number) => bigint;
46
+ export declare const manualSubProofPubkeyWC: (validator: Validator) => {
47
+ leafPubkeyWC: Uint8Array<ArrayBufferLike>;
48
+ root: Uint8Array<ArrayBufferLike>;
49
+ siblings: Uint8Array<ArrayBufferLike>[];
50
+ };
51
+ export declare const manualSubProofBeaconBlockHeader: (blockHeader: BeaconBlockHeader) => {
52
+ root: Uint8Array<ArrayBufferLike>;
53
+ siblings: Uint8Array<ArrayBufferLike>[];
54
+ };
55
+ export declare const getPubkeyWCParentGIndex: () => bigint;
@@ -0,0 +1,173 @@
1
+ /*
2
+ Utils that could be used for testing lodestar packages
3
+ */
4
+ import { createHash } from 'crypto';
5
+ /** Hex -> bytes */
6
+ export const fromHex = (hex) => {
7
+ if (hex.startsWith('0x'))
8
+ hex = hex.slice(2);
9
+ return new Uint8Array(Buffer.from(hex, 'hex'));
10
+ };
11
+ /** anything -> hex */
12
+ export const toHex = (value) => {
13
+ if (typeof value === 'string' && !value.startsWith('0x')) {
14
+ return `0x${value}`;
15
+ }
16
+ if (typeof value === 'string') {
17
+ return value;
18
+ }
19
+ if (typeof value === 'number' || typeof value === 'bigint') {
20
+ return `0x${value.toString(16)}`;
21
+ }
22
+ if (value instanceof Uint8Array) {
23
+ return `0x${Buffer.from(value).toString('hex')}`;
24
+ }
25
+ throw new Error('Unsupported value type');
26
+ };
27
+ /** sha256(32+32) => 32 */
28
+ export const sha256Pair = (left, right) => {
29
+ if (left.length !== 32 || right.length !== 32) {
30
+ throw new Error('sha256Pair expects 2 x 32-byte inputs');
31
+ }
32
+ const buf = Buffer.alloc(64);
33
+ buf.set(left, 0);
34
+ buf.set(right, 32);
35
+ return createHash('sha256').update(buf).digest();
36
+ };
37
+ /**
38
+ * Helper for SHA-256 over multiple Uint8Array chunks.
39
+ * Returns a 32-byte hash (Uint8Array of length 32).
40
+ */
41
+ export const sha256Concat = (...chunks) => {
42
+ const hash = createHash('sha256');
43
+ for (const chunk of chunks) {
44
+ hash.update(chunk);
45
+ }
46
+ return hash.digest();
47
+ };
48
+ /** 48 => 64 padded => sha256 => 32 */
49
+ export const pubkeyRoot = (pubkey48) => {
50
+ if (pubkey48.length !== 48) {
51
+ throw new Error(`pubkey must be 48 bytes, got=${pubkey48.length}`);
52
+ }
53
+ const padded = Buffer.alloc(64);
54
+ padded.set(pubkey48, 0);
55
+ return createHash('sha256').update(padded).digest();
56
+ };
57
+ /** uint64 => little-endian => pad => 32 */
58
+ export const uint64To32LE = (val) => {
59
+ const b = Buffer.alloc(8);
60
+ b.writeBigUInt64LE(val, 0);
61
+ return Buffer.concat([b, Buffer.alloc(24)]);
62
+ };
63
+ /**
64
+ * Converts BigInt (gwei) to 8 bytes (big-endian), then reverses it to little-endian.
65
+ * Returns Uint8Array[8].
66
+ */
67
+ export const encodeGweiAsLittleEndian8 = (amountGwei) => {
68
+ // First 8 bytes big-endian
69
+ const be = new Uint8Array(8);
70
+ let tmp = amountGwei;
71
+ for (let i = 7; i >= 0; i--) {
72
+ be[i] = Number(tmp & 0xffn);
73
+ tmp >>= 8n;
74
+ }
75
+ // Now reverse it (big-endian -> little-endian)
76
+ const le = new Uint8Array(8);
77
+ for (let i = 0; i < 8; i++) {
78
+ le[i] = be[7 - i] ?? 0;
79
+ }
80
+ return le;
81
+ };
82
+ /** bool => 1 byte => 32 */
83
+ export const boolTo32 = (b) => {
84
+ const oneByte = Buffer.from([b ? 1 : 0]);
85
+ return Buffer.concat([oneByte, Buffer.alloc(31)]);
86
+ };
87
+ /**
88
+ * If value == Infinity, treat it as 2^64-1 (18446744073709551615)
89
+ * sentinel "Infinity" => max uint64
90
+ */
91
+ export const safeUint64 = (value) => {
92
+ if (!Number.isFinite(value)) {
93
+ // sentinel "Infinity" => max uint64
94
+ return 18446744073709551615n;
95
+ }
96
+ return BigInt(value);
97
+ };
98
+ export const manualSubProofPubkeyWC = (validator) => {
99
+ const pubkey48 = new Uint8Array(validator.pubkey); // 48
100
+ const wc32 = new Uint8Array(validator.withdrawalCredentials); // 32
101
+ const effBalance32 = uint64To32LE(BigInt(validator.effectiveBalance));
102
+ const slashed32 = boolTo32(!!validator.slashed);
103
+ const actElig32 = uint64To32LE(BigInt(validator.activationEligibilityEpoch));
104
+ const act32 = uint64To32LE(BigInt(validator.activationEpoch));
105
+ const exitEpochSafe = safeUint64(validator.exitEpoch);
106
+ const exit32 = uint64To32LE(exitEpochSafe);
107
+ const withdrawableEpochSafe = safeUint64(validator.withdrawableEpoch);
108
+ const wdble32 = uint64To32LE(withdrawableEpochSafe);
109
+ const node0 = sha256Pair(pubkeyRoot(pubkey48), wc32);
110
+ const node1 = sha256Pair(effBalance32, slashed32);
111
+ const node2 = sha256Pair(actElig32, act32);
112
+ const node3 = sha256Pair(exit32, wdble32);
113
+ const node01 = sha256Pair(node0, node1);
114
+ const node23 = sha256Pair(node2, node3);
115
+ const siblings = [node1, node23];
116
+ const root = sha256Pair(node01, node23);
117
+ return {
118
+ leafPubkeyWC: node0,
119
+ root,
120
+ siblings,
121
+ };
122
+ };
123
+ export const manualSubProofBeaconBlockHeader = (blockHeader) => {
124
+ const slot = blockHeader.slot;
125
+ const proposerIndex = blockHeader.proposer_index;
126
+ const parentRoot = blockHeader.parent_root;
127
+ const stateRoot = blockHeader.state_root;
128
+ const bodyRoot = blockHeader.body_root;
129
+ const zero1_32 = new Uint8Array(32);
130
+ const zero2_32 = new Uint8Array(32);
131
+ const zero3_32 = new Uint8Array(32);
132
+ const slot32 = uint64To32LE(BigInt(slot));
133
+ const proposerIndex32 = uint64To32LE(BigInt(proposerIndex));
134
+ const parentRoot32 = fromHex(parentRoot);
135
+ const stateRoot32 = fromHex(stateRoot);
136
+ const bodyRoot32 = fromHex(bodyRoot);
137
+ const node0 = sha256Pair(slot32, proposerIndex32);
138
+ const node1 = sha256Pair(parentRoot32, stateRoot32);
139
+ const node2 = sha256Pair(bodyRoot32, zero1_32);
140
+ const node3 = sha256Pair(zero2_32, zero3_32);
141
+ const node01 = sha256Pair(node0, node1);
142
+ const node23 = sha256Pair(node2, node3);
143
+ const siblings = [parentRoot32, node0, node23];
144
+ const root = sha256Pair(node01, node23);
145
+ return {
146
+ root,
147
+ siblings,
148
+ };
149
+ };
150
+ /*
151
+ gIndex=1
152
+ Validator Container Root
153
+
154
+ ┌───────────────┴───────────────┐
155
+ │ │
156
+ gIndex=2 gIndex=3
157
+ node proof[1] **DEPTH = 1
158
+ │ │
159
+ ┌───────┴───────┐ ┌───────┴───────┐
160
+ │ │ │ │
161
+ gIndex=4 gIndex=5 gIndex=6 gIndex=7
162
+ Proven Parent proof[0] node node **DEPTH = 2
163
+ │ │ │ │
164
+ ┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐
165
+ │ │ │ │ │ │ │ │
166
+ [pubkeyRoot] [wc] [EB] [slashed] [AEE] [AE] [EE] [WE] **DEPTH = 3
167
+ */
168
+ export const getPubkeyWCParentGIndex = () => {
169
+ const depth = 2;
170
+ const position = 0;
171
+ return BigInt((1 << depth) + position); // => 4
172
+ };
173
+ //# sourceMappingURL=merkle-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkle-utils.js","sourceRoot":"","sources":["../../../utils/proof/merkle-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Hex } from 'viem';
2
+ import { SingleProof, Node } from '@chainsafe/persistent-merkle-tree';
3
+ import { ssz } from '@lodestar/types';
4
+ type View = ReturnType<(typeof ssz)['capella']['BeaconState']['deserializeToView']> | ReturnType<(typeof ssz)['deneb']['BeaconState']['deserializeToView']> | ReturnType<(typeof ssz)['electra']['BeaconState']['deserializeToView']>;
5
+ type Validator = ReturnType<View['validators']['getReadonly']>;
6
+ declare const SupportedFork: {
7
+ capella: string;
8
+ deneb: string;
9
+ electra: string;
10
+ };
11
+ export type BeaconHeaderResponse = {
12
+ slot: number;
13
+ proposer_index: number;
14
+ parent_root: Hex;
15
+ state_root: Hex;
16
+ body_root: Hex;
17
+ };
18
+ export declare const createPubkeyWCProof: (validatorNode: Node) => Promise<{
19
+ proof: SingleProof;
20
+ }>;
21
+ export declare const createStateProof: (validatorIndex: number, bodyBytes: ArrayBuffer, forkName: keyof typeof SupportedFork) => Promise<{
22
+ proof: SingleProof;
23
+ validator: Validator;
24
+ view: View;
25
+ }>;
26
+ export declare const createBeaconHeaderProof: (beaconHeader: BeaconHeaderResponse) => Promise<{
27
+ proof: SingleProof;
28
+ root: `0x${string}`;
29
+ }>;
30
+ export {};
@@ -0,0 +1,52 @@
1
+ import { toHex, fromHex } from 'viem';
2
+ import { ProofType, createProof, } from '@chainsafe/persistent-merkle-tree';
3
+ import { ssz } from '@lodestar/types';
4
+ import { getPubkeyWCParentGIndex } from './merkle-utils.js';
5
+ const SupportedFork = {
6
+ capella: 'capella',
7
+ deneb: 'deneb',
8
+ electra: 'electra',
9
+ };
10
+ export const createPubkeyWCProof = async (validatorNode) => {
11
+ const pubkeyWCProof = createProof(validatorNode, {
12
+ type: ProofType.single,
13
+ gindex: getPubkeyWCParentGIndex(),
14
+ });
15
+ return { proof: pubkeyWCProof };
16
+ };
17
+ export const createStateProof = async (validatorIndex, bodyBytes, forkName) => {
18
+ const stateView = ssz[forkName].BeaconState.deserializeToView(new Uint8Array(bodyBytes));
19
+ if (validatorIndex >= stateView.validators.length)
20
+ throw new Error(`ValidatorIndex ${validatorIndex} out of range`);
21
+ const validator = stateView.validators.getReadonly(Number(validatorIndex));
22
+ const gIValidator = stateView.type.getPathInfo([
23
+ 'validators',
24
+ Number(validatorIndex),
25
+ ]).gindex;
26
+ const validatorStateProof = createProof(stateView.node, {
27
+ type: ProofType.single,
28
+ gindex: gIValidator,
29
+ });
30
+ return { proof: validatorStateProof, validator, view: stateView };
31
+ };
32
+ export const createBeaconHeaderProof = async (beaconHeader) => {
33
+ const beaconHeaderView = ssz['phase0'].BeaconBlockHeader.toView({
34
+ slot: Number(beaconHeader.slot),
35
+ proposerIndex: Number(beaconHeader.proposer_index),
36
+ parentRoot: fromHex(beaconHeader.parent_root, 'bytes'),
37
+ stateRoot: fromHex(beaconHeader.state_root, 'bytes'),
38
+ bodyRoot: fromHex(beaconHeader.body_root, 'bytes'),
39
+ });
40
+ const gIndexBeaconHeader = beaconHeaderView.type.getPathInfo([
41
+ 'state_root',
42
+ ]).gindex;
43
+ const beaconHeaderProof = createProof(beaconHeaderView.node, {
44
+ type: ProofType.single,
45
+ gindex: gIndexBeaconHeader,
46
+ });
47
+ return {
48
+ proof: beaconHeaderProof,
49
+ root: toHex(beaconHeaderView.hashTreeRoot()),
50
+ };
51
+ };
52
+ //# sourceMappingURL=proofs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proofs.js","sourceRoot":"","sources":["../../../utils/proof/proofs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAO,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAGL,SAAS,EACT,WAAW,GAEZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAQ5D,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACnB,CAAC;AAUF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,aAAmB,EAAE,EAAE;IAC/D,MAAM,aAAa,GAAU,WAAW,CAAC,aAAa,EAAE;QACtD,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,MAAM,EAAE,uBAAuB,EAAE;KAClC,CAAgB,CAAC;IAElB,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,cAAsB,EACtB,SAAsB,EACtB,QAAoC,EAC+B,EAAE;IACrE,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAC3D,IAAI,UAAU,CAAC,SAAS,CAAC,CAC1B,CAAC;IAEF,IAAI,cAAc,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM;QAC/C,MAAM,IAAI,KAAK,CAAC,kBAAkB,cAAc,eAAe,CAAC,CAAC;IAEnE,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;QAC7C,YAAY;QACZ,MAAM,CAAC,cAAc,CAAC;KACvB,CAAC,CAAC,MAAM,CAAC;IACV,MAAM,mBAAmB,GAAU,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE;QAC7D,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,MAAM,EAAE,WAAW;KACpB,CAAgB,CAAC;IAElB,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,YAAkC,EAClC,EAAE;IACF,MAAM,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC9D,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;QAC/B,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC;QAClD,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC;QACtD,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC;QACpD,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;KACnD,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;QAC3D,YAAY;KACb,CAAC,CAAC,MAAM,CAAC;IACV,MAAM,iBAAiB,GAAG,WAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAC3D,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,MAAM,EAAE,kBAAkB;KAC3B,CAAgB,CAAC;IAElB,OAAO;QACL,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hex } from 'viem';
2
+ import { LeafDataFields } from '../index.js';
3
+ export declare const DOUBLE_HASH: (data: Hex) => Hex;
4
+ export declare const hashNode: (a: Hex, b: Hex) => Hex;
5
+ export declare const getReportLeaf: (input: LeafDataFields) => Hex;
@@ -0,0 +1,26 @@
1
+ import { encodeAbiParameters, keccak256, concatHex } from 'viem';
2
+ export const DOUBLE_HASH = (data) => keccak256(keccak256(data));
3
+ export const hashNode = (a, b) => {
4
+ const [left, right] = a < b ? [a, b] : [b, a];
5
+ return keccak256(concatHex([left, right]));
6
+ };
7
+ const encoding = [
8
+ { type: 'address', name: 'vault_address' },
9
+ { type: 'uint256', name: 'total_value_wei' },
10
+ { type: 'uint256', name: 'in_out_delta' },
11
+ { type: 'uint256', name: 'fee' },
12
+ { type: 'uint256', name: 'liability_shares' },
13
+ ];
14
+ const getLeafInput = (vault) => [
15
+ vault.vault_address,
16
+ BigInt(vault.total_value_wei),
17
+ BigInt(vault.in_out_delta),
18
+ BigInt(vault.fee),
19
+ BigInt(vault.liability_shares),
20
+ ];
21
+ export const getReportLeaf = (input) => {
22
+ const encoded = encodeAbiParameters(encoding, getLeafInput(input));
23
+ const leaf = DOUBLE_HASH(encoded);
24
+ return leaf;
25
+ };
26
+ //# sourceMappingURL=report-proof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-proof.js","sourceRoot":"","sources":["../../../utils/proof/report-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAO,SAAS,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAS,EAAO,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,CAAM,EAAO,EAAE;IAC9C,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;IAC1C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE;IACzC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE;CAC9C,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAqB,EAAE,EAAE,CAAC;IAC9C,KAAK,CAAC,aAAa;IACnB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;IAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACjB,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAqB,EAAO,EAAE;IAC1D,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Command } from 'commander';
2
+ import { Abi } from 'viem';
3
+ import { ReadContract } from './index.js';
4
+ export type ReadProgramCommandConfig = {
5
+ [fnName: string]: {
6
+ hidden?: boolean;
7
+ name?: string;
8
+ description?: string;
9
+ aliases?: string[];
10
+ arguments?: {
11
+ [argName: string]: {
12
+ name?: string;
13
+ description?: string;
14
+ modifier?: (value: string) => any;
15
+ };
16
+ };
17
+ };
18
+ };
19
+ export declare function generateReadCommands<T>(abi: Abi, createContract: (address: T) => ReadContract, command: Command, commandConfig: ReadProgramCommandConfig): Command;
20
+ export declare function generateReadCommands(abi: Abi, createContractAsync: () => Promise<ReadContract>, command: Command, commandConfig: ReadProgramCommandConfig): Command;