diff --git a/CHANGELOG.md b/CHANGELOG.md index c6121d4e..efd428c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [Unreleased] ### [v1.1.1] 2024-04-12 -- [Update] Update project dependencies. +- [7b61d4f](https://github.com/bloxapp/ssv-network/commit/7b61d4f) - [Fix] Revert when passing an empty public keys list. ## [Released] diff --git a/contracts/interfaces/ISSVNetworkCore.sol b/contracts/interfaces/ISSVNetworkCore.sol index 70990e72..af8b6b94 100644 --- a/contracts/interfaces/ISSVNetworkCore.sol +++ b/contracts/interfaces/ISSVNetworkCore.sol @@ -89,6 +89,7 @@ interface ISSVNetworkCore { error PublicKeysSharesLengthMismatch(); // 0x9ad467b8 error IncorrectValidatorStateWithData(bytes publicKey); // 0x89307938 error ValidatorAlreadyExistsWithData(bytes publicKey); // 0x388e7999 + error EmptyPublicKeysList(); // df83e679 // legacy errors error ValidatorAlreadyExists(); // 0x8d09a73e diff --git a/contracts/modules/SSVClusters.sol b/contracts/modules/SSVClusters.sol index f4b6fd4f..8d60a5d8 100644 --- a/contracts/modules/SSVClusters.sol +++ b/contracts/modules/SSVClusters.sol @@ -49,13 +49,14 @@ contract SSVClusters is ISSVClusters { uint256 amount, Cluster memory cluster ) external override { - if (publicKeys.length != sharesData.length) revert PublicKeysSharesLengthMismatch(); + uint256 validatorsLength = publicKeys.length; + + if (validatorsLength == 0) revert EmptyPublicKeysList(); + if (validatorsLength != sharesData.length) revert PublicKeysSharesLengthMismatch(); StorageData storage s = SSVStorage.load(); StorageProtocol storage sp = SSVStorageProtocol.load(); - uint256 validatorsLength = publicKeys.length; - ValidatorLib.validateOperatorsLength(operatorIds); for (uint i; i < validatorsLength; ++i) { diff --git a/test/helpers/gas-usage.ts b/test/helpers/gas-usage.ts index 96e770ef..c2496afb 100644 --- a/test/helpers/gas-usage.ts +++ b/test/helpers/gas-usage.ts @@ -89,7 +89,7 @@ const MAX_GAS_PER_GROUP: any = { [GasGroup.REDUCE_OPERATOR_FEE]: 51900, [GasGroup.REGISTER_VALIDATOR_EXISTING_CLUSTER]: 202000, - [GasGroup.REGISTER_VALIDATOR_NEW_STATE]: 235500, + [GasGroup.REGISTER_VALIDATOR_NEW_STATE]: 236000, [GasGroup.REGISTER_VALIDATOR_WITHOUT_DEPOSIT]: 180600, [GasGroup.BULK_REGISTER_10_VALIDATOR_NEW_STATE_4]: 835500,