Skip to content

Commit b5a3f9d

Browse files
authored
Move verifying signer validation checks to setVerifyingSigner (#18)
1 parent ae1a564 commit b5a3f9d

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/Paymaster.sol

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@ contract Paymaster is BasePaymaster {
2424
uint256 private constant SIGNATURE_OFFSET = VALID_TIMESTAMP_OFFSET + 64;
2525

2626
constructor(IEntryPoint _entryPoint, address _verifyingSigner) BasePaymaster(_entryPoint) Ownable() {
27-
require(_verifyingSigner != address(0), "Paymaster: verifyingSigner cannot be address(0)");
28-
require(_verifyingSigner != msg.sender, "Paymaster: verifyingSigner cannot be the owner");
2927
require(address(_entryPoint).code.length > 0, "Paymaster: passed _entryPoint is not currently a contract");
30-
verifyingSigner = _verifyingSigner;
28+
setVerifyingSigner(_verifyingSigner);
3129
}
3230

3331
/**
@@ -90,6 +88,8 @@ contract Paymaster is BasePaymaster {
9088
}
9189

9290
function setVerifyingSigner(address _verifyingSigner) public onlyOwner {
91+
require(_verifyingSigner != address(0), "Paymaster: verifyingSigner cannot be address(0)");
92+
require(_verifyingSigner != msg.sender, "Paymaster: verifyingSigner cannot be the owner");
9393
verifyingSigner = _verifyingSigner;
9494
}
9595

test/Paymaster.t.sol

+10
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@ contract PaymasterTest is Test {
4141
new Paymaster(entrypoint, address(this));
4242
}
4343

44+
function test_zeroAddressSetVerifyingSigner() public {
45+
vm.expectRevert("Paymaster: verifyingSigner cannot be address(0)");
46+
paymaster.setVerifyingSigner(address(0));
47+
}
48+
49+
function test_ownerSetVerifyingSigner() public {
50+
vm.expectRevert("Paymaster: verifyingSigner cannot be the owner");
51+
paymaster.setVerifyingSigner(address(this));
52+
}
53+
4454
function test_entryPointNotAContract() public {
4555
vm.expectRevert("Paymaster: passed _entryPoint is not currently a contract");
4656
new Paymaster(IEntryPoint(address(0x1234)), PAYMASTER_SIGNER);

0 commit comments

Comments
 (0)