Skip to content

Commit ac82da0

Browse files
committed
test: improve signature checker coverage
1 parent 293e919 commit ac82da0

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

test/unit/BLSSignatureCheckerUnit.t.sol

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,4 +582,74 @@ contract BLSSignatureCheckerUnitTests is BLSMockAVSDeployer {
582582
msgHash, quorumNumbers, referenceBlockNumber, nonSignerStakesAndSignature
583583
);
584584
}
585+
586+
function test_trySignatureAndApkVerification_success() public {
587+
uint256 numNonSigners = 0;
588+
uint256 quorumBitmap = 1;
589+
(
590+
uint32 referenceBlockNumber,
591+
BLSSignatureChecker.NonSignerStakesAndSignature memory nonSignerStakesAndSignature
592+
) = _registerSignatoriesAndGetNonSignerStakeAndSignatureRandom(
593+
1, numNonSigners, quorumBitmap
594+
);
595+
596+
(bool pairingSuccessful, bool signatureIsValid) = blsSignatureChecker.trySignatureAndApkVerification(
597+
msgHash,
598+
nonSignerStakesAndSignature.quorumApks[0],
599+
nonSignerStakesAndSignature.apkG2,
600+
nonSignerStakesAndSignature.sigma
601+
);
602+
603+
assertTrue(pairingSuccessful, "Pairing should be successful");
604+
assertTrue(signatureIsValid, "Signature should be valid");
605+
}
606+
607+
function test_trySignatureAndApkVerification_invalidSignature() public {
608+
uint256 numNonSigners = 0;
609+
uint256 quorumBitmap = 1;
610+
(
611+
uint32 referenceBlockNumber,
612+
BLSSignatureChecker.NonSignerStakesAndSignature memory nonSignerStakesAndSignature
613+
) = _registerSignatoriesAndGetNonSignerStakeAndSignatureRandom(
614+
1, numNonSigners, quorumBitmap
615+
);
616+
617+
// Modify sigma to make it invalid
618+
nonSignerStakesAndSignature.sigma.X++;
619+
620+
cheats.expectRevert();
621+
blsSignatureChecker.trySignatureAndApkVerification(
622+
msgHash,
623+
nonSignerStakesAndSignature.quorumApks[0],
624+
nonSignerStakesAndSignature.apkG2,
625+
nonSignerStakesAndSignature.sigma
626+
);
627+
}
628+
629+
function test_trySignatureAndApkVerification_invalidPairing() public {
630+
uint256 numNonSigners = 0;
631+
uint256 quorumBitmap = 1;
632+
(
633+
uint32 referenceBlockNumber,
634+
BLSSignatureChecker.NonSignerStakesAndSignature memory nonSignerStakesAndSignature
635+
) = _registerSignatoriesAndGetNonSignerStakeAndSignatureRandom(
636+
1, numNonSigners, quorumBitmap
637+
);
638+
639+
// Create invalid G2 point
640+
BN254.G2Point memory invalidG2Point = BN254.G2Point(
641+
[type(uint256).max, type(uint256).max],
642+
[type(uint256).max, type(uint256).max]
643+
);
644+
645+
(bool pairingSuccessful, bool signatureIsValid) = blsSignatureChecker.trySignatureAndApkVerification(
646+
msgHash,
647+
nonSignerStakesAndSignature.quorumApks[0],
648+
invalidG2Point,
649+
nonSignerStakesAndSignature.sigma
650+
);
651+
652+
assertFalse(pairingSuccessful, "Pairing should fail");
653+
assertFalse(signatureIsValid, "Signature should be invalid");
654+
}
585655
}

0 commit comments

Comments
 (0)