Skip to content

Commit

Permalink
validate validator sets on initialization
Browse files Browse the repository at this point in the history
  • Loading branch information
alistair-singh committed Nov 27, 2023
1 parent 4dd37e6 commit db994ef
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
4 changes: 4 additions & 0 deletions contracts/src/BeefyClient.sol
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ contract BeefyClient {
error InvalidSignature();
error InvalidTicket();
error InvalidValidatorProof();
error InvalidValidatorSetData();
error CommitmentNotRelevant();
error NotEnoughClaims();
error PrevRandaoAlreadyCaptured();
Expand All @@ -215,6 +216,9 @@ contract BeefyClient {
ValidatorSet memory _initialValidatorSet,
ValidatorSet memory _nextValidatorSet
) {
if (_nextValidatorSet.id != _initialValidatorSet.id + 1) {
revert InvalidValidatorSetData();
}
randaoCommitDelay = _randaoCommitDelay;
randaoCommitExpiration = _randaoCommitExpiration;
minNumRequiredSignatures = _minNumRequiredSignatures;
Expand Down
14 changes: 14 additions & 0 deletions contracts/test/BeefyClient.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -730,4 +730,18 @@ contract BeefyClientTest is Test {
function testStorageToStorageCopies() public {
beefyClient.copyCounters();
}

function testFuzzInitializationValidation(uint128 currentId, uint128 nextId) public {
vm.assume(currentId < type(uint128).max);
vm.assume(currentId + 1 != nextId);
vm.expectRevert(BeefyClient.InvalidValidatorSetData.selector);
new BeefyClient(
randaoCommitDelay,
randaoCommitExpiration,
minNumRequiredSignatures,
0,
BeefyClient.ValidatorSet(currentId, 0, 0x0),
BeefyClient.ValidatorSet(nextId, 0, 0x0)
);
}
}
2 changes: 1 addition & 1 deletion contracts/test/mocks/BeefyClientMock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ contract BeefyClientMock is BeefyClient {
minNumRequiredSignatures,
0,
BeefyClient.ValidatorSet(0, 0, 0x0),
BeefyClient.ValidatorSet(0, 0, 0x0)
BeefyClient.ValidatorSet(1, 0, 0x0)
)
{}

Expand Down

0 comments on commit db994ef

Please sign in to comment.