@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.
- package/README.md +58 -0
- package/dist/abi/Dashboard.d.ts +268 -0
- package/dist/abi/Dashboard.js +2 -0
- package/dist/abi/Dashboard.js.map +1 -1
- package/dist/abi/PredepositGuarantee.d.ts +357 -88
- package/dist/abi/PredepositGuarantee.js +31 -28
- package/dist/abi/PredepositGuarantee.js.map +1 -1
- package/dist/abi/VaultViewer.d.ts +8 -0
- package/dist/abi/VaultViewer.js +10 -0
- package/dist/abi/VaultViewer.js.map +1 -1
- package/dist/command/index.js +1 -0
- package/dist/command/index.js.map +1 -1
- package/dist/configs/deployed.js +27 -8
- package/dist/configs/deployed.js.map +1 -1
- package/dist/configs/index.d.ts +4 -3
- package/dist/configs/index.js +4 -3
- package/dist/configs/index.js.map +1 -1
- package/dist/contracts/vault-viewer.js +2 -2
- package/dist/features/defi-wrapper/defi-wrapper-factory.d.ts +1 -2
- package/dist/features/defi-wrapper/defi-wrapper-factory.js +12 -9
- package/dist/features/defi-wrapper/defi-wrapper-factory.js.map +1 -1
- package/dist/features/deposits/index.d.ts +1 -0
- package/dist/features/deposits/index.js +1 -0
- package/dist/features/deposits/index.js.map +1 -1
- package/dist/features/deposits/validators.d.ts +12 -0
- package/dist/features/deposits/validators.js +31 -0
- package/dist/features/deposits/validators.js.map +1 -0
- package/dist/features/index.d.ts +1 -0
- package/dist/features/index.js +1 -0
- package/dist/features/index.js.map +1 -1
- package/dist/features/lazy-oracle.js +2 -2
- package/dist/features/lazy-oracle.js.map +1 -1
- package/dist/features/mint-burn/allowance.d.ts +7 -1
- package/dist/features/mint-burn/allowance.js +8 -9
- package/dist/features/mint-burn/allowance.js.map +1 -1
- package/dist/features/mint-burn/burn-shares.d.ts +2 -1
- package/dist/features/mint-burn/burn-shares.js +4 -3
- package/dist/features/mint-burn/burn-shares.js.map +1 -1
- package/dist/features/mint-burn/burn-steth.d.ts +2 -1
- package/dist/features/mint-burn/burn-steth.js +4 -3
- package/dist/features/mint-burn/burn-steth.js.map +1 -1
- package/dist/features/mint-burn/mint-shares.js +4 -6
- package/dist/features/mint-burn/mint-shares.js.map +1 -1
- package/dist/features/mint-burn/mint-steth.js +4 -6
- package/dist/features/mint-burn/mint-steth.js.map +1 -1
- package/dist/features/utils/connection.d.ts +2 -0
- package/dist/features/utils/connection.js +14 -0
- package/dist/features/utils/connection.js.map +1 -0
- package/dist/features/utils/index.d.ts +1 -0
- package/dist/features/utils/index.js +1 -0
- package/dist/features/utils/index.js.map +1 -1
- package/dist/features/utils/liability-shares.js +2 -1
- package/dist/features/utils/liability-shares.js.map +1 -1
- package/dist/features/utils/report-fresh.d.ts +11 -1
- package/dist/features/utils/report-fresh.js +17 -14
- package/dist/features/utils/report-fresh.js.map +1 -1
- package/dist/features/vault-factory.d.ts +13 -14
- package/dist/features/vault-factory.js +30 -8
- package/dist/features/vault-factory.js.map +1 -1
- package/dist/features/vault-operations/connect-vault.d.ts +4 -0
- package/dist/features/vault-operations/connect-vault.js +21 -0
- package/dist/features/vault-operations/connect-vault.js.map +1 -0
- package/dist/features/vault-operations/create-vault.js +6 -4
- package/dist/features/vault-operations/create-vault.js.map +1 -1
- package/dist/features/vault-operations/dashboard-by-vault.js +17 -4
- package/dist/features/vault-operations/dashboard-by-vault.js.map +1 -1
- package/dist/features/vault-operations/index.d.ts +2 -0
- package/dist/features/vault-operations/index.js +2 -0
- package/dist/features/vault-operations/index.js.map +1 -1
- package/dist/features/vault-operations/roles.d.ts +5 -0
- package/dist/features/vault-operations/roles.js +65 -0
- package/dist/features/vault-operations/roles.js.map +1 -0
- package/dist/features/vault-operations/vault-info.js +9 -3
- package/dist/features/vault-operations/vault-info.js.map +1 -1
- package/dist/features/vault-operations/vault-overview.js +5 -7
- package/dist/features/vault-operations/vault-overview.js.map +1 -1
- package/dist/features/vault-operations/vault-roles.js +1 -1
- package/dist/features/vault-operations/vault-roles.js.map +1 -1
- package/dist/features/with-report.d.ts +6 -0
- package/dist/features/with-report.js +18 -0
- package/dist/features/with-report.js.map +1 -0
- package/dist/index.js +32 -10
- package/dist/index.js.map +1 -1
- package/dist/programs/contracts/dashboard/write.js +39 -20
- package/dist/programs/contracts/dashboard/write.js.map +1 -1
- package/dist/programs/contracts/hub/write.js +5 -1
- package/dist/programs/contracts/hub/write.js.map +1 -1
- package/dist/programs/contracts/operator-grid/write.js +1 -1
- package/dist/programs/contracts/operator-grid/write.js.map +1 -1
- package/dist/programs/contracts/vault-factory/write.js +37 -23
- package/dist/programs/contracts/vault-factory/write.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/factory/write.js +12 -14
- package/dist/programs/defi-wrapper/contracts/factory/write.js.map +1 -1
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js +53 -16
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js.map +1 -1
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js +2 -2
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js.map +1 -1
- package/dist/programs/pdg-helpers.js +13 -9
- package/dist/programs/pdg-helpers.js.map +1 -1
- package/dist/programs/use-cases/consolidation/write.js +2 -2
- package/dist/programs/use-cases/consolidation/write.js.map +1 -1
- package/dist/programs/use-cases/report/write.js +3 -3
- package/dist/programs/use-cases/report/write.js.map +1 -1
- package/dist/programs/use-cases/vault-operations/create-vault.js +63 -27
- package/dist/programs/use-cases/vault-operations/create-vault.js.map +1 -1
- package/dist/programs/use-cases/vault-operations/write.js +122 -25
- package/dist/programs/use-cases/vault-operations/write.js.map +1 -1
- package/dist/tests/integration/deposits.test.d.ts +1 -0
- package/dist/tests/integration/deposits.test.js +67 -0
- package/dist/tests/integration/deposits.test.js.map +1 -0
- package/dist/tests/integration/globalSetup.d.ts +1 -0
- package/dist/tests/integration/globalSetup.js +55 -0
- package/dist/tests/integration/globalSetup.js.map +1 -0
- package/dist/tests/integration/helpers/index.d.ts +3 -0
- package/dist/tests/integration/helpers/index.js +4 -0
- package/dist/tests/integration/helpers/index.js.map +1 -0
- package/dist/tests/integration/helpers/test-assertions.d.ts +32 -0
- package/dist/tests/integration/helpers/test-assertions.js +92 -0
- package/dist/tests/integration/helpers/test-assertions.js.map +1 -0
- package/dist/tests/integration/helpers/test-client.d.ts +14530 -0
- package/dist/tests/integration/helpers/test-client.js +73 -0
- package/dist/tests/integration/helpers/test-client.js.map +1 -0
- package/dist/tests/integration/helpers/test-config.d.ts +14 -0
- package/dist/tests/integration/helpers/test-config.js +62 -0
- package/dist/tests/integration/helpers/test-config.js.map +1 -0
- package/dist/tests/integration/helpers/test-setup.d.ts +12 -0
- package/dist/tests/integration/helpers/test-setup.js +40 -0
- package/dist/tests/integration/helpers/test-setup.js.map +1 -0
- package/dist/tests/integration/lazy-oracle.test.d.ts +1 -0
- package/dist/tests/integration/lazy-oracle.test.js +31 -0
- package/dist/tests/integration/lazy-oracle.test.js.map +1 -0
- package/dist/tests/integration/metrics.test.d.ts +1 -0
- package/dist/tests/integration/metrics.test.js +95 -0
- package/dist/tests/integration/metrics.test.js.map +1 -0
- package/dist/tests/integration/mint-burn.test.d.ts +1 -0
- package/dist/tests/integration/mint-burn.test.js +149 -0
- package/dist/tests/integration/mint-burn.test.js.map +1 -0
- package/dist/tests/integration/operator-grid.test.d.ts +1 -0
- package/dist/tests/integration/operator-grid.test.js +41 -0
- package/dist/tests/integration/operator-grid.test.js.map +1 -0
- package/dist/tests/integration/pdg.test.d.ts +1 -0
- package/dist/tests/integration/pdg.test.js +47 -0
- package/dist/tests/integration/pdg.test.js.map +1 -0
- package/dist/tests/integration/utils.test.d.ts +1 -0
- package/dist/tests/integration/utils.test.js +70 -0
- package/dist/tests/integration/utils.test.js.map +1 -0
- package/dist/tests/integration/vault-factory.test.d.ts +1 -0
- package/dist/tests/integration/vault-factory.test.js +29 -0
- package/dist/tests/integration/vault-factory.test.js.map +1 -0
- package/dist/tests/integration/vault-hub.test.d.ts +1 -0
- package/dist/tests/integration/vault-hub.test.js +71 -0
- package/dist/tests/integration/vault-hub.test.js.map +1 -0
- package/dist/tests/integration/vault-operations.test.d.ts +1 -0
- package/dist/tests/integration/vault-operations.test.js +151 -0
- package/dist/tests/integration/vault-operations.test.js.map +1 -0
- package/dist/tests/integration/vault-roles.test.d.ts +1 -0
- package/dist/tests/integration/vault-roles.test.js +44 -0
- package/dist/tests/integration/vault-roles.test.js.map +1 -0
- package/dist/tests/integration/vault.test.d.ts +1 -0
- package/dist/tests/integration/vault.test.js +44 -0
- package/dist/tests/integration/vault.test.js.map +1 -0
- package/dist/tests/utils/arguments.test.js +85 -4
- package/dist/tests/utils/arguments.test.js.map +1 -1
- package/dist/tests/utils/bigInt.test.js +1 -1
- package/dist/tests/utils/bigInt.test.js.map +1 -1
- package/dist/tests/utils/calculate-health.test.d.ts +1 -0
- package/dist/tests/utils/calculate-health.test.js +140 -0
- package/dist/tests/utils/calculate-health.test.js.map +1 -0
- package/dist/tests/utils/calculate-overview-v2.test.d.ts +1 -0
- package/dist/tests/utils/calculate-overview-v2.test.js +181 -0
- package/dist/tests/utils/calculate-overview-v2.test.js.map +1 -0
- package/dist/tests/utils/calculate-overview.test.js +2 -1
- package/dist/tests/utils/calculate-overview.test.js.map +1 -1
- package/dist/tests/utils/csv-file.test.d.ts +1 -0
- package/dist/tests/utils/csv-file.test.js +111 -0
- package/dist/tests/utils/csv-file.test.js.map +1 -0
- package/dist/tests/utils/data-validators.test.js +1 -1
- package/dist/tests/utils/data-validators.test.js.map +1 -1
- package/dist/tests/utils/error-handler.test.js +7 -16
- package/dist/tests/utils/error-handler.test.js.map +1 -1
- package/dist/tests/utils/get-commands.test.js +1 -1
- package/dist/tests/utils/get-commands.test.js.map +1 -1
- package/dist/tests/utils/get-deposit-data-root.test.js +1 -2
- package/dist/tests/utils/get-deposit-data-root.test.js.map +1 -1
- package/dist/tests/utils/get-value.test.js +1 -1
- package/dist/tests/utils/get-value.test.js.map +1 -1
- package/dist/tests/utils/health.test.js +1 -1
- package/dist/tests/utils/health.test.js.map +1 -1
- package/dist/tests/utils/interrupt-handler.test.js +2 -5
- package/dist/tests/utils/interrupt-handler.test.js.map +1 -1
- package/dist/tests/utils/ipfs.test.js +37 -24
- package/dist/tests/utils/ipfs.test.js.map +1 -1
- package/dist/tests/utils/lido-apr.test.d.ts +1 -0
- package/dist/tests/utils/lido-apr.test.js +95 -0
- package/dist/tests/utils/lido-apr.test.js.map +1 -0
- package/dist/tests/utils/logging.test.js +135 -15
- package/dist/tests/utils/logging.test.js.map +1 -1
- package/dist/tests/utils/merkle-utils.test.d.ts +1 -0
- package/dist/tests/utils/merkle-utils.test.js +231 -0
- package/dist/tests/utils/merkle-utils.test.js.map +1 -0
- package/dist/tests/utils/rebase-rewards.test.d.ts +1 -0
- package/dist/tests/utils/rebase-rewards.test.js +114 -0
- package/dist/tests/utils/rebase-rewards.test.js.map +1 -0
- package/dist/tests/utils/resove-path.test.js +1 -1
- package/dist/tests/utils/resove-path.test.js.map +1 -1
- package/dist/tests/utils/sleep.test.js +5 -5
- package/dist/tests/utils/sleep.test.js.map +1 -1
- package/dist/tests/utils/snake-to-camel.test.d.ts +1 -0
- package/dist/tests/utils/snake-to-camel.test.js +37 -0
- package/dist/tests/utils/snake-to-camel.test.js.map +1 -0
- package/dist/tests/utils/timestamp.test.d.ts +1 -0
- package/dist/tests/utils/timestamp.test.js +51 -0
- package/dist/tests/utils/timestamp.test.js.map +1 -0
- package/dist/utils/arguments.d.ts +2 -1
- package/dist/utils/arguments.js +6 -0
- package/dist/utils/arguments.js.map +1 -1
- package/dist/utils/calculate-overview-v2.d.ts +1 -2
- package/dist/utils/calculate-overview-v2.js +3 -6
- package/dist/utils/calculate-overview-v2.js.map +1 -1
- package/dist/utils/calculate-overview.d.ts +1 -0
- package/dist/utils/calculate-overview.js +1 -0
- package/dist/utils/calculate-overview.js.map +1 -1
- package/dist/utils/commands/report.d.ts +6 -1
- package/dist/utils/commands/report.js +6 -5
- package/dist/utils/commands/report.js.map +1 -1
- package/dist/utils/consolidation/confirms.js +2 -2
- package/dist/utils/consolidation/confirms.js.map +1 -1
- package/dist/utils/consolidation/logs.js +4 -2
- package/dist/utils/consolidation/logs.js.map +1 -1
- package/dist/utils/consolidation/pubkeys.js +2 -0
- package/dist/utils/consolidation/pubkeys.js.map +1 -1
- package/dist/utils/consolidation/types.d.ts +1 -0
- package/dist/utils/consolidation/validator-info.js +2 -0
- package/dist/utils/consolidation/validator-info.js.map +1 -1
- package/dist/utils/error-handler.js +2 -9
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/interrupt-handler.js +8 -2
- package/dist/utils/interrupt-handler.js.map +1 -1
- package/dist/utils/logging/console.js +41 -3
- package/dist/utils/logging/console.js.map +1 -1
- package/dist/utils/prompts/mint-burn/confirm-mint.js +1 -0
- package/dist/utils/prompts/mint-burn/confirm-mint.js.map +1 -1
- package/dist/utils/prompts/operations.js +4 -1
- package/dist/utils/prompts/operations.js.map +1 -1
- package/dist/utils/proof/create-proof.d.ts +5 -0
- package/dist/utils/proof/create-proof.js +5 -0
- package/dist/utils/proof/create-proof.js.map +1 -1
- package/dist/utils/transactions/tx-private-key.d.ts +4 -0
- package/dist/utils/transactions/tx-private-key.js +52 -24
- package/dist/utils/transactions/tx-private-key.js.map +1 -1
- package/dist/utils/transactions/tx-wc.d.ts +1 -0
- package/dist/utils/transactions/tx-wc.js +10 -19
- package/dist/utils/transactions/tx-wc.js.map +1 -1
- package/dist/utils/transactions/types.d.ts +1 -0
- package/dist/utils/transactions/utils.d.ts +3 -0
- package/dist/utils/transactions/utils.js +33 -0
- package/dist/utils/transactions/utils.js.map +1 -0
- package/dist/utils/wallet-connect.js +3 -1
- package/dist/utils/wallet-connect.js.map +1 -1
- package/dist/version/index.js +1 -1
- package/dist/vitest.config.d.ts +2 -0
- package/dist/vitest.config.js +29 -0
- package/dist/vitest.config.js.map +1 -0
- package/dist/vitest.integration.config.d.ts +2 -0
- package/dist/vitest.integration.config.js +39 -0
- package/dist/vitest.integration.config.js.map +1 -0
- 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,
|
|
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
|
-
|
|
59
|
-
|
|
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
|
-
|
|
251
|
-
|
|
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
|
-
|
|
285
|
-
|
|
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
|
|
309
|
-
|
|
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 @@
|
|
|
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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"}
|