@lidofinance/lsv-cli 1.2.0 → 1.3.0
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/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 +124 -26
- 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'])
|
|
@@ -31,7 +31,8 @@ vaultOperationsWrite
|
|
|
31
31
|
const confirm = await confirmOperation(`Are you sure you want to fund the staking vault ${vaultAddress} with ${formatEther(ether)} ether?`);
|
|
32
32
|
if (!confirm)
|
|
33
33
|
return;
|
|
34
|
-
await
|
|
34
|
+
await callWriteMethodsWithReportFresh({
|
|
35
|
+
vault: vaultAddress,
|
|
35
36
|
contract,
|
|
36
37
|
methodName: 'fund',
|
|
37
38
|
payload: [],
|
|
@@ -55,10 +56,8 @@ vaultOperationsWrite
|
|
|
55
56
|
const confirm = await confirmOperation(`Are you sure you want to withdraw ${formatEther(ether)} from the staking vault ${vaultAddress} to ${recipientAddress}?`);
|
|
56
57
|
if (!confirm)
|
|
57
58
|
return;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return;
|
|
61
|
-
await callWriteMethodWithReceipt({
|
|
59
|
+
await callWriteMethodsWithReportFresh({
|
|
60
|
+
vault: vaultAddress,
|
|
62
61
|
contract,
|
|
63
62
|
methodName: 'withdraw',
|
|
64
63
|
payload: [recipientAddress, ether],
|
|
@@ -133,8 +132,8 @@ vaultOperationsWrite
|
|
|
133
132
|
return;
|
|
134
133
|
const account = await getAccount();
|
|
135
134
|
await checkVaultRole(contract, 'BURN_ROLE', account.address);
|
|
136
|
-
await checkAllowance(contract, amountOfShares, 'shares');
|
|
137
|
-
await burnShares(contract, amountOfShares, vaultAddress, 'burnShares');
|
|
135
|
+
const allowanceCall = await checkAllowance(contract, amountOfShares, 'shares', true);
|
|
136
|
+
await burnShares(contract, amountOfShares, vaultAddress, 'burnShares', isPopulatedTx(allowanceCall?.data) ? allowanceCall.data : undefined);
|
|
138
137
|
});
|
|
139
138
|
vaultOperationsWrite
|
|
140
139
|
.command('burn-steth')
|
|
@@ -150,8 +149,8 @@ vaultOperationsWrite
|
|
|
150
149
|
return;
|
|
151
150
|
const account = await getAccount();
|
|
152
151
|
await checkVaultRole(contract, 'BURN_ROLE', account.address);
|
|
153
|
-
await checkAllowance(contract, amountOfSteth, 'steth');
|
|
154
|
-
await burnSteth(contract, amountOfSteth, vaultAddress);
|
|
152
|
+
const allowanceCall = await checkAllowance(contract, amountOfSteth, 'steth', true);
|
|
153
|
+
await burnSteth(contract, amountOfSteth, vaultAddress, isPopulatedTx(allowanceCall?.data) ? allowanceCall.data : undefined);
|
|
155
154
|
});
|
|
156
155
|
vaultOperationsWrite
|
|
157
156
|
.command('burn-wsteth')
|
|
@@ -167,8 +166,8 @@ vaultOperationsWrite
|
|
|
167
166
|
return;
|
|
168
167
|
const account = await getAccount();
|
|
169
168
|
await checkVaultRole(contract, 'BURN_ROLE', account.address);
|
|
170
|
-
await checkAllowance(contract, amountOfWsteth, 'wsteth');
|
|
171
|
-
await burnShares(contract, amountOfWsteth, vaultAddress, 'burnWstETH');
|
|
169
|
+
const allowanceCall = await checkAllowance(contract, amountOfWsteth, 'wsteth', true);
|
|
170
|
+
await burnShares(contract, amountOfWsteth, vaultAddress, 'burnWstETH', isPopulatedTx(allowanceCall?.data) ? allowanceCall.data : undefined);
|
|
172
171
|
});
|
|
173
172
|
vaultOperationsWrite
|
|
174
173
|
.command('disburse-node-operator-fee')
|
|
@@ -181,6 +180,7 @@ vaultOperationsWrite
|
|
|
181
180
|
const quarantineConfirm = await confirmQuarantine(vaultAddress);
|
|
182
181
|
if (!quarantineConfirm)
|
|
183
182
|
return;
|
|
183
|
+
await checkIsReportFreshThrowError({ vault: vaultAddress });
|
|
184
184
|
const nodeOperatorFeeRecipient = await callReadMethodSilent(contract, 'feeRecipient');
|
|
185
185
|
const nodeOperatorAccruedFee = await callReadMethodSilent(contract, 'accruedFee');
|
|
186
186
|
if (nodeOperatorAccruedFee === 0n) {
|
|
@@ -221,8 +221,8 @@ vaultOperationsWrite
|
|
|
221
221
|
vaultOperationsWrite
|
|
222
222
|
.command('change-tier-by-no')
|
|
223
223
|
.alias('ct-no')
|
|
224
|
-
.description('vault tier change by node operator with multi-role confirmation')
|
|
225
|
-
.argument('<tierId>', 'tier id', stringToBigInt)
|
|
224
|
+
.description('vault tier change by node operator with multi-role confirmation. For disconnected vaults this option is required')
|
|
225
|
+
.argument('<tierId>', 'tier id to change to', stringToBigInt)
|
|
226
226
|
.option('-r, --requestedShareLimit <string>', 'requested share limit (in shares)', etherToWei)
|
|
227
227
|
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
228
228
|
.action(async (tierId, { requestedShareLimit, vault, }) => {
|
|
@@ -247,9 +247,8 @@ vaultOperationsWrite
|
|
|
247
247
|
if (account.address !== vaultNodeOperator) {
|
|
248
248
|
throw new Error(`You are not the node operator of the vault ${vaultAddress}`);
|
|
249
249
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
await callWriteMethodWithReceipt({
|
|
250
|
+
await callWriteMethodsWithReportFresh({
|
|
251
|
+
vault: vaultAddress,
|
|
253
252
|
contract: operatorGridContract,
|
|
254
253
|
methodName: 'changeTier',
|
|
255
254
|
payload: [vaultAddress, tierId, currentShareLimit],
|
|
@@ -259,7 +258,7 @@ vaultOperationsWrite
|
|
|
259
258
|
.command('change-tier')
|
|
260
259
|
.alias('ct')
|
|
261
260
|
.description('vault tier change with multi-role confirmation')
|
|
262
|
-
.argument('<tierId>', 'tier id', stringToBigInt)
|
|
261
|
+
.argument('<tierId>', 'tier id to change to', stringToBigInt)
|
|
263
262
|
.option('-r, --requestedShareLimit <string>', 'requested share limit (in shares)', etherToWei)
|
|
264
263
|
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
265
264
|
.action(async (tierId, { requestedShareLimit, vault, }) => {
|
|
@@ -281,9 +280,8 @@ vaultOperationsWrite
|
|
|
281
280
|
return;
|
|
282
281
|
const account = await getAccount();
|
|
283
282
|
await checkVaultRole(contract, 'VAULT_CONFIGURATION_ROLE', account.address);
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
await callWriteMethodWithReceipt({
|
|
283
|
+
await callWriteMethodsWithReportFresh({
|
|
284
|
+
vault: vaultAddress,
|
|
287
285
|
contract,
|
|
288
286
|
methodName: 'changeTier',
|
|
289
287
|
payload: [tierId, currentShareLimit],
|
|
@@ -305,11 +303,111 @@ vaultOperationsWrite
|
|
|
305
303
|
const confirm = await confirmOperation(`Are you sure you want to sync the tier of the vault ${vaultAddress}?`);
|
|
306
304
|
if (!confirm)
|
|
307
305
|
return;
|
|
308
|
-
await
|
|
309
|
-
|
|
306
|
+
await callWriteMethodsWithReportFresh({
|
|
307
|
+
vault: vaultAddress,
|
|
310
308
|
contract,
|
|
311
309
|
methodName: 'syncTier',
|
|
312
310
|
payload: [],
|
|
313
311
|
});
|
|
314
312
|
});
|
|
313
|
+
vaultOperationsWrite
|
|
314
|
+
.command('role-grant')
|
|
315
|
+
.description('mass-grants multiple roles to multiple accounts.')
|
|
316
|
+
.option('-r, --roleAssignments <string>', 'JSON array of role assignments', jsonToRoleAssignment)
|
|
317
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
318
|
+
.addHelpText('after', `Role assignment format:
|
|
319
|
+
[{
|
|
320
|
+
"account": "...",
|
|
321
|
+
"role": "..."
|
|
322
|
+
}
|
|
323
|
+
{second role assignment}
|
|
324
|
+
...]`)
|
|
325
|
+
.action(async ({ roleAssignments, vault, }) => {
|
|
326
|
+
const { contract } = await chooseVaultAndGetDashboard({
|
|
327
|
+
vault,
|
|
328
|
+
});
|
|
329
|
+
let roleAssignmentsValue = [];
|
|
330
|
+
if (roleAssignments) {
|
|
331
|
+
roleAssignmentsValue = roleAssignments;
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
roleAssignmentsValue = await askRoleOperationInfo(contract, 'grant');
|
|
335
|
+
}
|
|
336
|
+
const confirm = await logRolesOperations(contract, roleAssignmentsValue, 'grant');
|
|
337
|
+
if (!confirm)
|
|
338
|
+
return;
|
|
339
|
+
await callWriteMethodWithReceipt({
|
|
340
|
+
contract,
|
|
341
|
+
methodName: 'grantRoles',
|
|
342
|
+
payload: [roleAssignmentsValue],
|
|
343
|
+
});
|
|
344
|
+
});
|
|
345
|
+
vaultOperationsWrite
|
|
346
|
+
.command('role-revoke')
|
|
347
|
+
.description('mass-revokes multiple roles from multiple accounts')
|
|
348
|
+
.option('-r, --roleAssignments <string>', 'JSON array of role assignments', jsonToRoleAssignment)
|
|
349
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
350
|
+
.addHelpText('after', `Role assignment format:
|
|
351
|
+
[{
|
|
352
|
+
"account": "...",
|
|
353
|
+
"role": "..."
|
|
354
|
+
}
|
|
355
|
+
{second role assignment}
|
|
356
|
+
...]`)
|
|
357
|
+
.action(async ({ roleAssignments, vault, }) => {
|
|
358
|
+
const { contract } = await chooseVaultAndGetDashboard({
|
|
359
|
+
vault,
|
|
360
|
+
});
|
|
361
|
+
let roleAssignmentsValue = [];
|
|
362
|
+
if (roleAssignments) {
|
|
363
|
+
roleAssignmentsValue = roleAssignments;
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
roleAssignmentsValue = await askRoleOperationInfo(contract, 'revoke');
|
|
367
|
+
}
|
|
368
|
+
const confirm = await logRolesOperations(contract, roleAssignmentsValue, 'revoke');
|
|
369
|
+
if (!confirm)
|
|
370
|
+
return;
|
|
371
|
+
await callWriteMethodWithReceipt({
|
|
372
|
+
contract,
|
|
373
|
+
methodName: 'revokeRoles',
|
|
374
|
+
payload: [roleAssignmentsValue],
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
vaultOperationsWrite
|
|
378
|
+
.command('connect-and-accept-tier')
|
|
379
|
+
.alias('connect-and-accept')
|
|
380
|
+
.description('changes the tier of the vault and connects to VaultHub')
|
|
381
|
+
.argument('<vaultAddress>', 'vault address', stringToAddress)
|
|
382
|
+
.argument('<tierId>', 'tier to change to', stringToBigInt)
|
|
383
|
+
.argument('<requestedShareLimit>', 'requested new share limit for the vault (in shares)', etherToWei)
|
|
384
|
+
.option('-f, --fund', 'optional fund the vault with 1 ETH', false)
|
|
385
|
+
.addHelpText('after', `Reverts if settledGrowth is not corrected after the vault is disconnected`)
|
|
386
|
+
.action(async (vaultAddress, tier, requestedShareLimit, { fund }) => {
|
|
387
|
+
const { contract } = await chooseVaultAndGetDashboard({
|
|
388
|
+
vault: vaultAddress,
|
|
389
|
+
});
|
|
390
|
+
const currentSettledGrowth = await callReadMethodSilent(contract, 'settledGrowth');
|
|
391
|
+
const confirm = await confirmOperation(`Are you sure you want to change the tier of the vault ${vaultAddress} to ${tier} and connect to VaultHub?
|
|
392
|
+
Requested share limit: ${formatEther(requestedShareLimit)}
|
|
393
|
+
Current settled growth: ${formatEther(currentSettledGrowth)}
|
|
394
|
+
Fund with 1 ETH: ${fund}`);
|
|
395
|
+
if (!confirm)
|
|
396
|
+
return;
|
|
397
|
+
let value;
|
|
398
|
+
if (!fund) {
|
|
399
|
+
const { isFundConfirmed } = await checkVaultAvailableBalance(vaultAddress);
|
|
400
|
+
if (isFundConfirmed)
|
|
401
|
+
value = parseEther('1');
|
|
402
|
+
}
|
|
403
|
+
else {
|
|
404
|
+
value = parseEther('1');
|
|
405
|
+
}
|
|
406
|
+
await callWriteMethodWithReceipt({
|
|
407
|
+
contract,
|
|
408
|
+
methodName: 'connectAndAcceptTier',
|
|
409
|
+
payload: [tier, requestedShareLimit],
|
|
410
|
+
value,
|
|
411
|
+
});
|
|
412
|
+
});
|
|
315
413
|
//# 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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"}
|