@lidofinance/lsv-cli 1.2.0 → 1.3.1

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 (267) hide show
  1. package/README.md +58 -0
  2. package/dist/abi/Dashboard.d.ts +268 -0
  3. package/dist/abi/Dashboard.js +2 -0
  4. package/dist/abi/Dashboard.js.map +1 -1
  5. package/dist/abi/PredepositGuarantee.d.ts +357 -88
  6. package/dist/abi/PredepositGuarantee.js +31 -28
  7. package/dist/abi/PredepositGuarantee.js.map +1 -1
  8. package/dist/abi/VaultViewer.d.ts +8 -0
  9. package/dist/abi/VaultViewer.js +10 -0
  10. package/dist/abi/VaultViewer.js.map +1 -1
  11. package/dist/command/index.js +1 -0
  12. package/dist/command/index.js.map +1 -1
  13. package/dist/configs/deployed.js +27 -8
  14. package/dist/configs/deployed.js.map +1 -1
  15. package/dist/configs/index.d.ts +4 -3
  16. package/dist/configs/index.js +4 -3
  17. package/dist/configs/index.js.map +1 -1
  18. package/dist/contracts/vault-viewer.js +2 -2
  19. package/dist/features/defi-wrapper/defi-wrapper-factory.d.ts +1 -2
  20. package/dist/features/defi-wrapper/defi-wrapper-factory.js +12 -9
  21. package/dist/features/defi-wrapper/defi-wrapper-factory.js.map +1 -1
  22. package/dist/features/deposits/index.d.ts +1 -0
  23. package/dist/features/deposits/index.js +1 -0
  24. package/dist/features/deposits/index.js.map +1 -1
  25. package/dist/features/deposits/validators.d.ts +12 -0
  26. package/dist/features/deposits/validators.js +31 -0
  27. package/dist/features/deposits/validators.js.map +1 -0
  28. package/dist/features/index.d.ts +1 -0
  29. package/dist/features/index.js +1 -0
  30. package/dist/features/index.js.map +1 -1
  31. package/dist/features/lazy-oracle.js +2 -2
  32. package/dist/features/lazy-oracle.js.map +1 -1
  33. package/dist/features/mint-burn/allowance.d.ts +7 -1
  34. package/dist/features/mint-burn/allowance.js +8 -9
  35. package/dist/features/mint-burn/allowance.js.map +1 -1
  36. package/dist/features/mint-burn/burn-shares.d.ts +2 -1
  37. package/dist/features/mint-burn/burn-shares.js +4 -3
  38. package/dist/features/mint-burn/burn-shares.js.map +1 -1
  39. package/dist/features/mint-burn/burn-steth.d.ts +2 -1
  40. package/dist/features/mint-burn/burn-steth.js +4 -3
  41. package/dist/features/mint-burn/burn-steth.js.map +1 -1
  42. package/dist/features/mint-burn/mint-shares.js +4 -6
  43. package/dist/features/mint-burn/mint-shares.js.map +1 -1
  44. package/dist/features/mint-burn/mint-steth.js +4 -6
  45. package/dist/features/mint-burn/mint-steth.js.map +1 -1
  46. package/dist/features/utils/connection.d.ts +2 -0
  47. package/dist/features/utils/connection.js +14 -0
  48. package/dist/features/utils/connection.js.map +1 -0
  49. package/dist/features/utils/index.d.ts +1 -0
  50. package/dist/features/utils/index.js +1 -0
  51. package/dist/features/utils/index.js.map +1 -1
  52. package/dist/features/utils/liability-shares.js +2 -1
  53. package/dist/features/utils/liability-shares.js.map +1 -1
  54. package/dist/features/utils/report-fresh.d.ts +11 -1
  55. package/dist/features/utils/report-fresh.js +17 -14
  56. package/dist/features/utils/report-fresh.js.map +1 -1
  57. package/dist/features/vault-factory.d.ts +13 -14
  58. package/dist/features/vault-factory.js +30 -8
  59. package/dist/features/vault-factory.js.map +1 -1
  60. package/dist/features/vault-operations/connect-vault.d.ts +4 -0
  61. package/dist/features/vault-operations/connect-vault.js +21 -0
  62. package/dist/features/vault-operations/connect-vault.js.map +1 -0
  63. package/dist/features/vault-operations/create-vault.js +6 -4
  64. package/dist/features/vault-operations/create-vault.js.map +1 -1
  65. package/dist/features/vault-operations/dashboard-by-vault.js +17 -4
  66. package/dist/features/vault-operations/dashboard-by-vault.js.map +1 -1
  67. package/dist/features/vault-operations/index.d.ts +2 -0
  68. package/dist/features/vault-operations/index.js +2 -0
  69. package/dist/features/vault-operations/index.js.map +1 -1
  70. package/dist/features/vault-operations/roles.d.ts +5 -0
  71. package/dist/features/vault-operations/roles.js +65 -0
  72. package/dist/features/vault-operations/roles.js.map +1 -0
  73. package/dist/features/vault-operations/vault-info.js +9 -3
  74. package/dist/features/vault-operations/vault-info.js.map +1 -1
  75. package/dist/features/vault-operations/vault-overview.js +5 -7
  76. package/dist/features/vault-operations/vault-overview.js.map +1 -1
  77. package/dist/features/vault-operations/vault-roles.js +1 -1
  78. package/dist/features/vault-operations/vault-roles.js.map +1 -1
  79. package/dist/features/with-report.d.ts +6 -0
  80. package/dist/features/with-report.js +18 -0
  81. package/dist/features/with-report.js.map +1 -0
  82. package/dist/index.js +32 -10
  83. package/dist/index.js.map +1 -1
  84. package/dist/programs/contracts/dashboard/write.js +39 -20
  85. package/dist/programs/contracts/dashboard/write.js.map +1 -1
  86. package/dist/programs/contracts/hub/write.js +5 -1
  87. package/dist/programs/contracts/hub/write.js.map +1 -1
  88. package/dist/programs/contracts/operator-grid/write.js +1 -1
  89. package/dist/programs/contracts/operator-grid/write.js.map +1 -1
  90. package/dist/programs/contracts/vault-factory/write.js +37 -23
  91. package/dist/programs/contracts/vault-factory/write.js.map +1 -1
  92. package/dist/programs/defi-wrapper/contracts/factory/write.js +12 -14
  93. package/dist/programs/defi-wrapper/contracts/factory/write.js.map +1 -1
  94. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js +53 -16
  95. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js.map +1 -1
  96. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js +2 -2
  97. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js.map +1 -1
  98. package/dist/programs/pdg-helpers.js +13 -9
  99. package/dist/programs/pdg-helpers.js.map +1 -1
  100. package/dist/programs/use-cases/consolidation/write.js +2 -2
  101. package/dist/programs/use-cases/consolidation/write.js.map +1 -1
  102. package/dist/programs/use-cases/report/write.js +3 -3
  103. package/dist/programs/use-cases/report/write.js.map +1 -1
  104. package/dist/programs/use-cases/vault-operations/create-vault.js +63 -27
  105. package/dist/programs/use-cases/vault-operations/create-vault.js.map +1 -1
  106. package/dist/programs/use-cases/vault-operations/write.js +122 -25
  107. package/dist/programs/use-cases/vault-operations/write.js.map +1 -1
  108. package/dist/tests/integration/deposits.test.d.ts +1 -0
  109. package/dist/tests/integration/deposits.test.js +67 -0
  110. package/dist/tests/integration/deposits.test.js.map +1 -0
  111. package/dist/tests/integration/globalSetup.d.ts +1 -0
  112. package/dist/tests/integration/globalSetup.js +55 -0
  113. package/dist/tests/integration/globalSetup.js.map +1 -0
  114. package/dist/tests/integration/helpers/index.d.ts +3 -0
  115. package/dist/tests/integration/helpers/index.js +4 -0
  116. package/dist/tests/integration/helpers/index.js.map +1 -0
  117. package/dist/tests/integration/helpers/test-assertions.d.ts +32 -0
  118. package/dist/tests/integration/helpers/test-assertions.js +92 -0
  119. package/dist/tests/integration/helpers/test-assertions.js.map +1 -0
  120. package/dist/tests/integration/helpers/test-client.d.ts +14530 -0
  121. package/dist/tests/integration/helpers/test-client.js +73 -0
  122. package/dist/tests/integration/helpers/test-client.js.map +1 -0
  123. package/dist/tests/integration/helpers/test-config.d.ts +14 -0
  124. package/dist/tests/integration/helpers/test-config.js +62 -0
  125. package/dist/tests/integration/helpers/test-config.js.map +1 -0
  126. package/dist/tests/integration/helpers/test-setup.d.ts +12 -0
  127. package/dist/tests/integration/helpers/test-setup.js +40 -0
  128. package/dist/tests/integration/helpers/test-setup.js.map +1 -0
  129. package/dist/tests/integration/lazy-oracle.test.d.ts +1 -0
  130. package/dist/tests/integration/lazy-oracle.test.js +31 -0
  131. package/dist/tests/integration/lazy-oracle.test.js.map +1 -0
  132. package/dist/tests/integration/metrics.test.d.ts +1 -0
  133. package/dist/tests/integration/metrics.test.js +95 -0
  134. package/dist/tests/integration/metrics.test.js.map +1 -0
  135. package/dist/tests/integration/mint-burn.test.d.ts +1 -0
  136. package/dist/tests/integration/mint-burn.test.js +149 -0
  137. package/dist/tests/integration/mint-burn.test.js.map +1 -0
  138. package/dist/tests/integration/operator-grid.test.d.ts +1 -0
  139. package/dist/tests/integration/operator-grid.test.js +41 -0
  140. package/dist/tests/integration/operator-grid.test.js.map +1 -0
  141. package/dist/tests/integration/pdg.test.d.ts +1 -0
  142. package/dist/tests/integration/pdg.test.js +47 -0
  143. package/dist/tests/integration/pdg.test.js.map +1 -0
  144. package/dist/tests/integration/utils.test.d.ts +1 -0
  145. package/dist/tests/integration/utils.test.js +70 -0
  146. package/dist/tests/integration/utils.test.js.map +1 -0
  147. package/dist/tests/integration/vault-factory.test.d.ts +1 -0
  148. package/dist/tests/integration/vault-factory.test.js +29 -0
  149. package/dist/tests/integration/vault-factory.test.js.map +1 -0
  150. package/dist/tests/integration/vault-hub.test.d.ts +1 -0
  151. package/dist/tests/integration/vault-hub.test.js +71 -0
  152. package/dist/tests/integration/vault-hub.test.js.map +1 -0
  153. package/dist/tests/integration/vault-operations.test.d.ts +1 -0
  154. package/dist/tests/integration/vault-operations.test.js +151 -0
  155. package/dist/tests/integration/vault-operations.test.js.map +1 -0
  156. package/dist/tests/integration/vault-roles.test.d.ts +1 -0
  157. package/dist/tests/integration/vault-roles.test.js +44 -0
  158. package/dist/tests/integration/vault-roles.test.js.map +1 -0
  159. package/dist/tests/integration/vault.test.d.ts +1 -0
  160. package/dist/tests/integration/vault.test.js +44 -0
  161. package/dist/tests/integration/vault.test.js.map +1 -0
  162. package/dist/tests/utils/arguments.test.js +85 -4
  163. package/dist/tests/utils/arguments.test.js.map +1 -1
  164. package/dist/tests/utils/bigInt.test.js +1 -1
  165. package/dist/tests/utils/bigInt.test.js.map +1 -1
  166. package/dist/tests/utils/calculate-health.test.d.ts +1 -0
  167. package/dist/tests/utils/calculate-health.test.js +140 -0
  168. package/dist/tests/utils/calculate-health.test.js.map +1 -0
  169. package/dist/tests/utils/calculate-overview-v2.test.d.ts +1 -0
  170. package/dist/tests/utils/calculate-overview-v2.test.js +181 -0
  171. package/dist/tests/utils/calculate-overview-v2.test.js.map +1 -0
  172. package/dist/tests/utils/calculate-overview.test.js +2 -1
  173. package/dist/tests/utils/calculate-overview.test.js.map +1 -1
  174. package/dist/tests/utils/csv-file.test.d.ts +1 -0
  175. package/dist/tests/utils/csv-file.test.js +111 -0
  176. package/dist/tests/utils/csv-file.test.js.map +1 -0
  177. package/dist/tests/utils/data-validators.test.js +1 -1
  178. package/dist/tests/utils/data-validators.test.js.map +1 -1
  179. package/dist/tests/utils/error-handler.test.js +7 -16
  180. package/dist/tests/utils/error-handler.test.js.map +1 -1
  181. package/dist/tests/utils/get-commands.test.js +1 -1
  182. package/dist/tests/utils/get-commands.test.js.map +1 -1
  183. package/dist/tests/utils/get-deposit-data-root.test.js +1 -2
  184. package/dist/tests/utils/get-deposit-data-root.test.js.map +1 -1
  185. package/dist/tests/utils/get-value.test.js +1 -1
  186. package/dist/tests/utils/get-value.test.js.map +1 -1
  187. package/dist/tests/utils/health.test.js +1 -1
  188. package/dist/tests/utils/health.test.js.map +1 -1
  189. package/dist/tests/utils/interrupt-handler.test.js +2 -5
  190. package/dist/tests/utils/interrupt-handler.test.js.map +1 -1
  191. package/dist/tests/utils/ipfs.test.js +37 -24
  192. package/dist/tests/utils/ipfs.test.js.map +1 -1
  193. package/dist/tests/utils/lido-apr.test.d.ts +1 -0
  194. package/dist/tests/utils/lido-apr.test.js +95 -0
  195. package/dist/tests/utils/lido-apr.test.js.map +1 -0
  196. package/dist/tests/utils/logging.test.js +135 -15
  197. package/dist/tests/utils/logging.test.js.map +1 -1
  198. package/dist/tests/utils/merkle-utils.test.d.ts +1 -0
  199. package/dist/tests/utils/merkle-utils.test.js +231 -0
  200. package/dist/tests/utils/merkle-utils.test.js.map +1 -0
  201. package/dist/tests/utils/rebase-rewards.test.d.ts +1 -0
  202. package/dist/tests/utils/rebase-rewards.test.js +114 -0
  203. package/dist/tests/utils/rebase-rewards.test.js.map +1 -0
  204. package/dist/tests/utils/resove-path.test.js +1 -1
  205. package/dist/tests/utils/resove-path.test.js.map +1 -1
  206. package/dist/tests/utils/sleep.test.js +5 -5
  207. package/dist/tests/utils/sleep.test.js.map +1 -1
  208. package/dist/tests/utils/snake-to-camel.test.d.ts +1 -0
  209. package/dist/tests/utils/snake-to-camel.test.js +37 -0
  210. package/dist/tests/utils/snake-to-camel.test.js.map +1 -0
  211. package/dist/tests/utils/timestamp.test.d.ts +1 -0
  212. package/dist/tests/utils/timestamp.test.js +51 -0
  213. package/dist/tests/utils/timestamp.test.js.map +1 -0
  214. package/dist/utils/arguments.d.ts +2 -1
  215. package/dist/utils/arguments.js +6 -0
  216. package/dist/utils/arguments.js.map +1 -1
  217. package/dist/utils/calculate-overview-v2.d.ts +1 -2
  218. package/dist/utils/calculate-overview-v2.js +3 -6
  219. package/dist/utils/calculate-overview-v2.js.map +1 -1
  220. package/dist/utils/calculate-overview.d.ts +1 -0
  221. package/dist/utils/calculate-overview.js +1 -0
  222. package/dist/utils/calculate-overview.js.map +1 -1
  223. package/dist/utils/commands/report.d.ts +6 -1
  224. package/dist/utils/commands/report.js +6 -5
  225. package/dist/utils/commands/report.js.map +1 -1
  226. package/dist/utils/consolidation/confirms.js +2 -2
  227. package/dist/utils/consolidation/confirms.js.map +1 -1
  228. package/dist/utils/consolidation/logs.js +4 -2
  229. package/dist/utils/consolidation/logs.js.map +1 -1
  230. package/dist/utils/consolidation/pubkeys.js +2 -0
  231. package/dist/utils/consolidation/pubkeys.js.map +1 -1
  232. package/dist/utils/consolidation/types.d.ts +1 -0
  233. package/dist/utils/consolidation/validator-info.js +2 -0
  234. package/dist/utils/consolidation/validator-info.js.map +1 -1
  235. package/dist/utils/error-handler.js +2 -9
  236. package/dist/utils/error-handler.js.map +1 -1
  237. package/dist/utils/interrupt-handler.js +8 -2
  238. package/dist/utils/interrupt-handler.js.map +1 -1
  239. package/dist/utils/logging/console.js +41 -3
  240. package/dist/utils/logging/console.js.map +1 -1
  241. package/dist/utils/prompts/mint-burn/confirm-mint.js +1 -0
  242. package/dist/utils/prompts/mint-burn/confirm-mint.js.map +1 -1
  243. package/dist/utils/prompts/operations.js +4 -1
  244. package/dist/utils/prompts/operations.js.map +1 -1
  245. package/dist/utils/proof/create-proof.d.ts +5 -0
  246. package/dist/utils/proof/create-proof.js +5 -0
  247. package/dist/utils/proof/create-proof.js.map +1 -1
  248. package/dist/utils/transactions/tx-private-key.d.ts +4 -0
  249. package/dist/utils/transactions/tx-private-key.js +52 -24
  250. package/dist/utils/transactions/tx-private-key.js.map +1 -1
  251. package/dist/utils/transactions/tx-wc.d.ts +1 -0
  252. package/dist/utils/transactions/tx-wc.js +10 -19
  253. package/dist/utils/transactions/tx-wc.js.map +1 -1
  254. package/dist/utils/transactions/types.d.ts +1 -0
  255. package/dist/utils/transactions/utils.d.ts +3 -0
  256. package/dist/utils/transactions/utils.js +33 -0
  257. package/dist/utils/transactions/utils.js.map +1 -0
  258. package/dist/utils/wallet-connect.js +3 -1
  259. package/dist/utils/wallet-connect.js.map +1 -1
  260. package/dist/version/index.js +1 -1
  261. package/dist/vitest.config.d.ts +2 -0
  262. package/dist/vitest.config.js +29 -0
  263. package/dist/vitest.config.js.map +1 -0
  264. package/dist/vitest.integration.config.d.ts +2 -0
  265. package/dist/vitest.integration.config.js +39 -0
  266. package/dist/vitest.integration.config.js.map +1 -0
  267. package/package.json +14 -9
@@ -1,10 +1,10 @@
1
- import { formatEther } from 'viem';
1
+ import { formatEther, parseEther } from 'viem';
2
2
  import { Option } from 'commander';
3
- import { logInfo, getCommandsJson, etherToWei, stringToAddress, confirmOperation, callWriteMethodWithReceipt, callReadMethodSilent, logError, stringToBigInt, } from '../../../utils/index.js';
4
- import { chooseVaultAndGetDashboard, getAddress, mintShares, checkIsReportFresh, mintSteth, burnShares, burnSteth, checkVaultRole, checkAllowance, confirmQuarantine, } from '../../../features/index.js';
3
+ import { logInfo, getCommandsJson, etherToWei, stringToAddress, confirmOperation, callWriteMethodWithReceipt, callReadMethodSilent, logError, stringToBigInt, jsonToRoleAssignment, isPopulatedTx, } from '../../../utils/index.js';
4
+ import { chooseVaultAndGetDashboard, getAddress, mintShares, mintSteth, burnShares, burnSteth, checkVaultRole, checkAllowance, confirmQuarantine, logRolesOperations, askRoleOperationInfo, callWriteMethodsWithReportFresh, checkVaultAvailableBalance, checkIsReportFreshThrowError, } from '../../../features/index.js';
5
5
  import { getAccount } from '../../../providers/index.js';
6
- import { vaultOperations } from './main.js';
7
6
  import { getOperatorGridContract } from '../../../contracts/index.js';
7
+ import { vaultOperations } from './main.js';
8
8
  export const vaultOperationsWrite = vaultOperations
9
9
  .command('write')
10
10
  .aliases(['w'])
@@ -55,10 +55,8 @@ vaultOperationsWrite
55
55
  const confirm = await confirmOperation(`Are you sure you want to withdraw ${formatEther(ether)} from the staking vault ${vaultAddress} to ${recipientAddress}?`);
56
56
  if (!confirm)
57
57
  return;
58
- const isReportFresh = await checkIsReportFresh(vaultAddress);
59
- if (!isReportFresh)
60
- return;
61
- await callWriteMethodWithReceipt({
58
+ await callWriteMethodsWithReportFresh({
59
+ vault: vaultAddress,
62
60
  contract,
63
61
  methodName: 'withdraw',
64
62
  payload: [recipientAddress, ether],
@@ -133,8 +131,8 @@ vaultOperationsWrite
133
131
  return;
134
132
  const account = await getAccount();
135
133
  await checkVaultRole(contract, 'BURN_ROLE', account.address);
136
- await checkAllowance(contract, amountOfShares, 'shares');
137
- await burnShares(contract, amountOfShares, vaultAddress, 'burnShares');
134
+ const allowanceCall = await checkAllowance(contract, amountOfShares, 'shares', true);
135
+ await burnShares(contract, amountOfShares, vaultAddress, 'burnShares', isPopulatedTx(allowanceCall?.data) ? allowanceCall.data : undefined);
138
136
  });
139
137
  vaultOperationsWrite
140
138
  .command('burn-steth')
@@ -150,8 +148,8 @@ vaultOperationsWrite
150
148
  return;
151
149
  const account = await getAccount();
152
150
  await checkVaultRole(contract, 'BURN_ROLE', account.address);
153
- await checkAllowance(contract, amountOfSteth, 'steth');
154
- await burnSteth(contract, amountOfSteth, vaultAddress);
151
+ const allowanceCall = await checkAllowance(contract, amountOfSteth, 'steth', true);
152
+ await burnSteth(contract, amountOfSteth, vaultAddress, isPopulatedTx(allowanceCall?.data) ? allowanceCall.data : undefined);
155
153
  });
156
154
  vaultOperationsWrite
157
155
  .command('burn-wsteth')
@@ -167,8 +165,8 @@ vaultOperationsWrite
167
165
  return;
168
166
  const account = await getAccount();
169
167
  await checkVaultRole(contract, 'BURN_ROLE', account.address);
170
- await checkAllowance(contract, amountOfWsteth, 'wsteth');
171
- await burnShares(contract, amountOfWsteth, vaultAddress, 'burnWstETH');
168
+ const allowanceCall = await checkAllowance(contract, amountOfWsteth, 'wsteth', true);
169
+ await burnShares(contract, amountOfWsteth, vaultAddress, 'burnWstETH', isPopulatedTx(allowanceCall?.data) ? allowanceCall.data : undefined);
172
170
  });
173
171
  vaultOperationsWrite
174
172
  .command('disburse-node-operator-fee')
@@ -181,6 +179,7 @@ vaultOperationsWrite
181
179
  const quarantineConfirm = await confirmQuarantine(vaultAddress);
182
180
  if (!quarantineConfirm)
183
181
  return;
182
+ await checkIsReportFreshThrowError({ vault: vaultAddress });
184
183
  const nodeOperatorFeeRecipient = await callReadMethodSilent(contract, 'feeRecipient');
185
184
  const nodeOperatorAccruedFee = await callReadMethodSilent(contract, 'accruedFee');
186
185
  if (nodeOperatorAccruedFee === 0n) {
@@ -221,8 +220,8 @@ vaultOperationsWrite
221
220
  vaultOperationsWrite
222
221
  .command('change-tier-by-no')
223
222
  .alias('ct-no')
224
- .description('vault tier change by node operator with multi-role confirmation')
225
- .argument('<tierId>', 'tier id', stringToBigInt)
223
+ .description('vault tier change by node operator with multi-role confirmation. For disconnected vaults this option is required')
224
+ .argument('<tierId>', 'tier id to change to', stringToBigInt)
226
225
  .option('-r, --requestedShareLimit <string>', 'requested share limit (in shares)', etherToWei)
227
226
  .option('-v, --vault <string>', 'vault address', stringToAddress)
228
227
  .action(async (tierId, { requestedShareLimit, vault, }) => {
@@ -247,9 +246,8 @@ vaultOperationsWrite
247
246
  if (account.address !== vaultNodeOperator) {
248
247
  throw new Error(`You are not the node operator of the vault ${vaultAddress}`);
249
248
  }
250
- // TODO: only for confirmation
251
- await checkIsReportFresh(vaultAddress);
252
- await callWriteMethodWithReceipt({
249
+ await callWriteMethodsWithReportFresh({
250
+ vault: vaultAddress,
253
251
  contract: operatorGridContract,
254
252
  methodName: 'changeTier',
255
253
  payload: [vaultAddress, tierId, currentShareLimit],
@@ -259,7 +257,7 @@ vaultOperationsWrite
259
257
  .command('change-tier')
260
258
  .alias('ct')
261
259
  .description('vault tier change with multi-role confirmation')
262
- .argument('<tierId>', 'tier id', stringToBigInt)
260
+ .argument('<tierId>', 'tier id to change to', stringToBigInt)
263
261
  .option('-r, --requestedShareLimit <string>', 'requested share limit (in shares)', etherToWei)
264
262
  .option('-v, --vault <string>', 'vault address', stringToAddress)
265
263
  .action(async (tierId, { requestedShareLimit, vault, }) => {
@@ -281,9 +279,8 @@ vaultOperationsWrite
281
279
  return;
282
280
  const account = await getAccount();
283
281
  await checkVaultRole(contract, 'VAULT_CONFIGURATION_ROLE', account.address);
284
- // TODO: only for confirmation
285
- await checkIsReportFresh(vaultAddress);
286
- await callWriteMethodWithReceipt({
282
+ await callWriteMethodsWithReportFresh({
283
+ vault: vaultAddress,
287
284
  contract,
288
285
  methodName: 'changeTier',
289
286
  payload: [tierId, currentShareLimit],
@@ -305,11 +302,111 @@ vaultOperationsWrite
305
302
  const confirm = await confirmOperation(`Are you sure you want to sync the tier of the vault ${vaultAddress}?`);
306
303
  if (!confirm)
307
304
  return;
308
- await checkIsReportFresh(vaultAddress);
309
- await callWriteMethodWithReceipt({
305
+ await callWriteMethodsWithReportFresh({
306
+ vault: vaultAddress,
310
307
  contract,
311
308
  methodName: 'syncTier',
312
309
  payload: [],
313
310
  });
314
311
  });
312
+ vaultOperationsWrite
313
+ .command('role-grant')
314
+ .description('mass-grants multiple roles to multiple accounts.')
315
+ .option('-r, --roleAssignments <string>', 'JSON array of role assignments', jsonToRoleAssignment)
316
+ .option('-v, --vault <string>', 'vault address', stringToAddress)
317
+ .addHelpText('after', `Role assignment format:
318
+ [{
319
+ "account": "...",
320
+ "role": "..."
321
+ }
322
+ {second role assignment}
323
+ ...]`)
324
+ .action(async ({ roleAssignments, vault, }) => {
325
+ const { contract } = await chooseVaultAndGetDashboard({
326
+ vault,
327
+ });
328
+ let roleAssignmentsValue = [];
329
+ if (roleAssignments) {
330
+ roleAssignmentsValue = roleAssignments;
331
+ }
332
+ else {
333
+ roleAssignmentsValue = await askRoleOperationInfo(contract, 'grant');
334
+ }
335
+ const confirm = await logRolesOperations(contract, roleAssignmentsValue, 'grant');
336
+ if (!confirm)
337
+ return;
338
+ await callWriteMethodWithReceipt({
339
+ contract,
340
+ methodName: 'grantRoles',
341
+ payload: [roleAssignmentsValue],
342
+ });
343
+ });
344
+ vaultOperationsWrite
345
+ .command('role-revoke')
346
+ .description('mass-revokes multiple roles from multiple accounts')
347
+ .option('-r, --roleAssignments <string>', 'JSON array of role assignments', jsonToRoleAssignment)
348
+ .option('-v, --vault <string>', 'vault address', stringToAddress)
349
+ .addHelpText('after', `Role assignment format:
350
+ [{
351
+ "account": "...",
352
+ "role": "..."
353
+ }
354
+ {second role assignment}
355
+ ...]`)
356
+ .action(async ({ roleAssignments, vault, }) => {
357
+ const { contract } = await chooseVaultAndGetDashboard({
358
+ vault,
359
+ });
360
+ let roleAssignmentsValue = [];
361
+ if (roleAssignments) {
362
+ roleAssignmentsValue = roleAssignments;
363
+ }
364
+ else {
365
+ roleAssignmentsValue = await askRoleOperationInfo(contract, 'revoke');
366
+ }
367
+ const confirm = await logRolesOperations(contract, roleAssignmentsValue, 'revoke');
368
+ if (!confirm)
369
+ return;
370
+ await callWriteMethodWithReceipt({
371
+ contract,
372
+ methodName: 'revokeRoles',
373
+ payload: [roleAssignmentsValue],
374
+ });
375
+ });
376
+ vaultOperationsWrite
377
+ .command('connect-and-accept-tier')
378
+ .alias('connect-and-accept')
379
+ .description('changes the tier of the vault and connects to VaultHub')
380
+ .argument('<vaultAddress>', 'vault address', stringToAddress)
381
+ .argument('<tierId>', 'tier to change to', stringToBigInt)
382
+ .argument('<requestedShareLimit>', 'requested new share limit for the vault (in shares)', etherToWei)
383
+ .option('-f, --fund', 'optional fund the vault with 1 ETH', false)
384
+ .addHelpText('after', `Reverts if settledGrowth is not corrected after the vault is disconnected`)
385
+ .action(async (vaultAddress, tier, requestedShareLimit, { fund }) => {
386
+ const { contract } = await chooseVaultAndGetDashboard({
387
+ vault: vaultAddress,
388
+ });
389
+ const currentSettledGrowth = await callReadMethodSilent(contract, 'settledGrowth');
390
+ const confirm = await confirmOperation(`Are you sure you want to change the tier of the vault ${vaultAddress} to ${tier} and connect to VaultHub?
391
+ Requested share limit: ${formatEther(requestedShareLimit)}
392
+ Current settled growth: ${formatEther(currentSettledGrowth)}
393
+ Fund with 1 ETH: ${fund}`);
394
+ if (!confirm)
395
+ return;
396
+ let value;
397
+ if (!fund) {
398
+ const { isFundConfirmed } = await checkVaultAvailableBalance(vaultAddress);
399
+ if (isFundConfirmed)
400
+ value = parseEther('1');
401
+ }
402
+ else {
403
+ value = parseEther('1');
404
+ }
405
+ await callWriteMethodWithReceipt({
406
+ contract,
407
+ methodName: 'connectAndAcceptTier',
408
+ payload: [tier, requestedShareLimit],
409
+ value,
410
+ });
411
+ });
315
412
  //# sourceMappingURL=write.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../programs/use-cases/vault-operations/write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../programs/use-cases/vault-operations/write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,67 @@
1
+ import { describe, test, expect, beforeAll } from 'vitest';
2
+ import { checkValidatorInfo, checkPdgIsPaused } from '../../features/index.js';
3
+ import { getPredepositGuaranteeContract } from '../../contracts/pdg.js';
4
+ import { loadTestConfig } from './helpers/test-config.js';
5
+ import { setupIntegrationTestsBeforeEach } from './helpers/test-setup.js';
6
+ describe('Deposits Integration Tests', () => {
7
+ setupIntegrationTestsBeforeEach();
8
+ let pdgContract;
9
+ beforeAll(async () => {
10
+ loadTestConfig();
11
+ pdgContract = await getPredepositGuaranteeContract();
12
+ });
13
+ test('should check PDG is paused status', async () => {
14
+ const isPaused = await checkPdgIsPaused(pdgContract);
15
+ expect(typeof isPaused).toBe('boolean');
16
+ // PDG can be paused or not, both are valid states
17
+ });
18
+ test('should validate validator info with valid data', async () => {
19
+ const validValidator = {
20
+ pubkey: ('0x' + '0'.repeat(96)),
21
+ effectiveBalance: 32000000000, // 32 ETH in gwei
22
+ activationEpoch: 0,
23
+ slashed: false,
24
+ };
25
+ const result = await checkValidatorInfo(validValidator);
26
+ expect(result).toBeDefined();
27
+ expect(result).toHaveProperty('isValid');
28
+ expect(result).toHaveProperty('skip');
29
+ expect(typeof result.isValid).toBe('boolean');
30
+ expect(typeof result.skip).toBe('boolean');
31
+ });
32
+ test('should handle validator with low effective balance', async () => {
33
+ const invalidValidator = {
34
+ pubkey: ('0x' + '0'.repeat(96)),
35
+ effectiveBalance: 1000000000, // Less than 32 ETH
36
+ activationEpoch: 0,
37
+ slashed: false,
38
+ };
39
+ const { isValid, skip } = await checkValidatorInfo(invalidValidator);
40
+ // Either result is defined or error is thrown
41
+ expect(isValid).toBe(false);
42
+ expect(skip).toBe(true);
43
+ });
44
+ test('should handle validator that is not activated', async () => {
45
+ const notActivatedValidator = {
46
+ pubkey: ('0x' + '0'.repeat(96)),
47
+ effectiveBalance: 32000000000,
48
+ activationEpoch: Infinity, // Not activated
49
+ slashed: false,
50
+ };
51
+ const { isValid, skip } = await checkValidatorInfo(notActivatedValidator);
52
+ expect(isValid).toBe(false);
53
+ expect(skip).toBe(true);
54
+ });
55
+ test('should handle slashed validator', async () => {
56
+ const slashedValidator = {
57
+ pubkey: ('0x' + '0'.repeat(96)),
58
+ effectiveBalance: 32000000000,
59
+ activationEpoch: 0,
60
+ slashed: true,
61
+ };
62
+ const { isValid, skip } = await checkValidatorInfo(slashedValidator);
63
+ expect(isValid).toBe(false);
64
+ expect(skip).toBe(true);
65
+ });
66
+ });
67
+ //# sourceMappingURL=deposits.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deposits.test.js","sourceRoot":"","sources":["../../../tests/integration/deposits.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function globalSetup(): Promise<() => Promise<void>>;
@@ -0,0 +1,55 @@
1
+ import { createAnvil } from '@viem/anvil';
2
+ import * as dotenv from 'dotenv';
3
+ import path from 'path';
4
+ // Load environment variables from .env.test or .env
5
+ dotenv.config({ path: path.resolve(process.cwd(), '.env.test') });
6
+ dotenv.config(); // Fallback to .env if .env.test doesn't exist
7
+ // Global anvil instance
8
+ let anvilInstance = null;
9
+ export default async function globalSetup() {
10
+ const ANVIL_PORT = Number(process.env.ANVIL_PORT || '8545');
11
+ const FORK_URL = process.env.EL_URL;
12
+ const FORK_BLOCK_NUMBER = process.env.FORK_BLOCK_NUMBER
13
+ ? Number(process.env.FORK_BLOCK_NUMBER)
14
+ : undefined;
15
+ const CHAIN_ID = Number(process.env.CHAIN_ID || '1');
16
+ if (!FORK_URL) {
17
+ throw new Error('EL_URL environment variable is required for integration tests');
18
+ }
19
+ console.info('Starting Anvil fork...');
20
+ console.info(`Fork URL: ${FORK_URL}`);
21
+ console.info(`Fork Block Number: ${FORK_BLOCK_NUMBER || 'latest'}`);
22
+ console.info(`Chain ID: ${CHAIN_ID}`);
23
+ console.info(`Port: ${ANVIL_PORT}`);
24
+ // Create Anvil instance
25
+ const anvil = createAnvil({
26
+ port: ANVIL_PORT,
27
+ forkUrl: FORK_URL,
28
+ forkBlockNumber: FORK_BLOCK_NUMBER,
29
+ chainId: CHAIN_ID,
30
+ });
31
+ // Start Anvil
32
+ await anvil.start();
33
+ // Update EL_URL to point to local anvil
34
+ const anvilRpcUrl = `http://127.0.0.1:${ANVIL_PORT}`;
35
+ process.env.EL_URL = anvilRpcUrl;
36
+ console.info(`Anvil started successfully`);
37
+ console.info(`Anvil RPC URL: ${anvilRpcUrl}`);
38
+ // Store instance for teardown
39
+ anvilInstance = anvil;
40
+ // Return a teardown function for Vitest
41
+ return async () => {
42
+ try {
43
+ if (anvilInstance) {
44
+ console.info('Stopping Anvil...');
45
+ await anvilInstance.stop();
46
+ console.info('Anvil stopped');
47
+ anvilInstance = null;
48
+ }
49
+ }
50
+ catch (error) {
51
+ console.error(`Error during teardown: ${error.message}`);
52
+ }
53
+ };
54
+ }
55
+ //# sourceMappingURL=globalSetup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalSetup.js","sourceRoot":"","sources":["../../../tests/integration/globalSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,oDAAoD;AACpD,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,8CAA8C;AAE/D,wBAAwB;AACxB,IAAI,aAAa,GAAmD,IAAI,CAAC;AAEzE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;IACpC,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACrD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACvC,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;IAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,sBAAsB,iBAAiB,IAAI,QAAQ,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;IAEpC,wBAAwB;IACxB,MAAM,KAAK,GAAG,WAAW,CAAC;QACxB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,QAAQ;QACjB,eAAe,EAAE,iBAAiB;QAClC,OAAO,EAAE,QAAQ;KAClB,CAAC,CAAC;IAEH,cAAc;IACd,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IAEpB,wCAAwC;IACxC,MAAM,WAAW,GAAG,oBAAoB,UAAU,EAAE,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC;IAEjC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC;IAE9C,8BAA8B;IAC9B,aAAa,GAAG,KAAK,CAAC;IAEtB,wCAAwC;IACxC,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,CAAC;YACH,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAClC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC9B,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './test-client.js';
2
+ export * from './test-config.js';
3
+ export * from './test-assertions.js';
@@ -0,0 +1,4 @@
1
+ export * from './test-client.js';
2
+ export * from './test-config.js';
3
+ export * from './test-assertions.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../tests/integration/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Helper functions to capture and validate data from features functions
3
+ * These functions use spies to intercept logResult/logTable calls
4
+ */
5
+ /**
6
+ * Captures data passed to logResult during function execution
7
+ */
8
+ export declare const captureLogResult: <T>(fn: () => Promise<void>) => Promise<T | null>;
9
+ /**
10
+ * Captures data passed to logTable during function execution
11
+ */
12
+ export declare const captureLogTable: <T>(fn: () => Promise<void>) => Promise<T | null>;
13
+ /**
14
+ * Validates that an address is valid (20 bytes / 40 hex chars)
15
+ */
16
+ export declare const isValidAddress: (address: string) => boolean;
17
+ /**
18
+ * Validates that a bytes32 hash is valid (32 bytes / 64 hex chars)
19
+ * Used for role hashes, keccak256 values, etc.
20
+ */
21
+ export declare const isValidBytes32: (hash: string) => boolean;
22
+ /**
23
+ * Validates that a bigint value is non-negative
24
+ */
25
+ export declare const isNonNegativeBigInt: (value: bigint) => boolean;
26
+ /**
27
+ * Validates that actual data matches expected data with informative error messages
28
+ * Performs two-way validation:
29
+ * 1. All expected keys exist in actual data with correct values
30
+ * 2. All actual keys exist in expected data with correct values
31
+ */
32
+ export declare const validateExpectedData: <T extends Record<string, any>>(actualData: T, expectedData: T, expect: any) => void;
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Helper functions to capture and validate data from features functions
3
+ * These functions use spies to intercept logResult/logTable calls
4
+ */
5
+ import { vi } from 'vitest';
6
+ /**
7
+ * Captures data passed to logResult or logTable during function execution
8
+ */
9
+ const captureLogData = async (fn, logFunctionName) => {
10
+ let capturedData = null;
11
+ // Spy on logResult or logTable
12
+ const utilsModule = await import('../../../utils/index.js');
13
+ const logSpy = vi
14
+ .spyOn(utilsModule, logFunctionName)
15
+ .mockImplementation((data) => {
16
+ if (data && data.data) {
17
+ // Convert array of [key, value] pairs back to object
18
+ const obj = {};
19
+ for (const [key, value] of data.data) {
20
+ obj[key] = value;
21
+ }
22
+ capturedData = obj;
23
+ }
24
+ });
25
+ try {
26
+ await fn();
27
+ }
28
+ finally {
29
+ logSpy.mockRestore();
30
+ }
31
+ return capturedData;
32
+ };
33
+ /**
34
+ * Captures data passed to logResult during function execution
35
+ */
36
+ export const captureLogResult = async (fn) => {
37
+ return captureLogData(fn, 'logResult');
38
+ };
39
+ /**
40
+ * Captures data passed to logTable during function execution
41
+ */
42
+ export const captureLogTable = async (fn) => {
43
+ return captureLogData(fn, 'logTable');
44
+ };
45
+ /**
46
+ * Validates that an address is valid (20 bytes / 40 hex chars)
47
+ */
48
+ export const isValidAddress = (address) => {
49
+ return /^0x[a-fA-F0-9]{40}$/.test(address);
50
+ };
51
+ /**
52
+ * Validates that a bytes32 hash is valid (32 bytes / 64 hex chars)
53
+ * Used for role hashes, keccak256 values, etc.
54
+ */
55
+ export const isValidBytes32 = (hash) => {
56
+ return /^0x[a-fA-F0-9]{64}$/.test(hash);
57
+ };
58
+ /**
59
+ * Validates that a bigint value is non-negative
60
+ */
61
+ export const isNonNegativeBigInt = (value) => {
62
+ return value >= 0n;
63
+ };
64
+ /**
65
+ * Validates that actual data matches expected data with informative error messages
66
+ * Performs two-way validation:
67
+ * 1. All expected keys exist in actual data with correct values
68
+ * 2. All actual keys exist in expected data with correct values
69
+ */
70
+ export const validateExpectedData = (actualData, expectedData, expect) => {
71
+ // Check all data from expectedData
72
+ for (const key in expectedData) {
73
+ const actualValue = actualData[key];
74
+ const expectedValue = expectedData[key];
75
+ expect(actualValue).toBeDefined();
76
+ if (actualValue !== expectedValue) {
77
+ throw new Error(`Key "${key}" value mismatch:\n Got: ${actualValue}\n Expected: ${expectedValue}`);
78
+ }
79
+ expect(actualValue).toBe(expectedValue);
80
+ }
81
+ // Check all data from actualData in expectedData
82
+ for (const key in actualData) {
83
+ const actualValue = actualData[key];
84
+ const expectedValue = expectedData[key];
85
+ expect(actualValue).toBeDefined();
86
+ if (actualValue !== expectedValue) {
87
+ throw new Error(`Key "${key}" value mismatch:\n Got: ${actualValue}\n Expected: ${expectedValue}`);
88
+ }
89
+ expect(actualValue).toBe(expectedValue);
90
+ }
91
+ };
92
+ //# sourceMappingURL=test-assertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-assertions.js","sourceRoot":"","sources":["../../../../tests/integration/helpers/test-assertions.ts"],"names":[],"mappings":"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"}