Skip to content

Commit b62cc6d

Browse files
committed
fix: stale stakes check should care about referenceBlockNumber
1 parent 17758d4 commit b62cc6d

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/BLSSignatureChecker.sol

+3-1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ contract BLSSignatureChecker is IBLSSignatureChecker {
107107
"BLSSignatureChecker.checkSignatures: input nonsigner length mismatch"
108108
);
109109

110+
require(referenceBlockNumber <= uint32(block.number), "BLSSignatureChecker.checkSignatures: invalid reference block");
111+
110112
// This method needs to calculate the aggregate pubkey for all signing operators across
111113
// all signing quorums. To do that, we can query the aggregate pubkey for each quorum
112114
// and subtract out the pubkey for each nonsigning operator registered to that quorum.
@@ -182,7 +184,7 @@ contract BLSSignatureChecker is IBLSSignatureChecker {
182184
// is within withdrawalDelayBlocks
183185
if (staleStakesForbidden) {
184186
require(
185-
registryCoordinator.quorumUpdateBlockNumber(uint8(quorumNumbers[i])) + withdrawalDelayBlocks >= block.number,
187+
registryCoordinator.quorumUpdateBlockNumber(uint8(quorumNumbers[i])) + withdrawalDelayBlocks >= referenceBlockNumber,
186188
"BLSSignatureChecker.checkSignatures: StakeRegistry updates must be within withdrawalDelayBlocks window"
187189
);
188190
}

0 commit comments

Comments
 (0)