Skip to content

Commit 68cc46a

Browse files
authored
Switch to more efficient calldataKeccak method (#10)
1 parent 33f8a7c commit 68cc46a

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/Paymaster.sol

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ contract Paymaster is BasePaymaster {
4343
abi.encode(
4444
userOp.getSender(),
4545
userOp.nonce,
46-
keccak256(userOp.initCode),
47-
keccak256(userOp.callData),
46+
calldataKeccak(userOp.initCode),
47+
calldataKeccak(userOp.callData),
4848
userOp.callGasLimit,
4949
userOp.verificationGasLimit,
5050
userOp.preVerificationGas,

test/Paymaster.t.sol

+11-3
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ contract PaymasterTest is Test {
4949
assertEq(signature, MOCK_SIG);
5050
}
5151

52+
function test_getHash() public {
53+
UserOperation memory userOp = createUserOp();
54+
userOp.initCode = "initCode";
55+
userOp.callData = "callData";
56+
bytes32 hash = paymaster.getHash(userOp, MOCK_VALID_UNTIL, MOCK_VALID_AFTER);
57+
assertEq(hash, 0xd3a02a83ba925f913230b3c805cd623d66f85d0d2548a6bfb5dea3aec9757630);
58+
}
59+
5260
function test_setVerifyingSignerOnlyOwner() public {
5361
vm.broadcast(ACCOUNT_OWNER);
5462
vm.expectRevert("Ownable: caller is not the owner");
@@ -59,7 +67,7 @@ contract PaymasterTest is Test {
5967
UserOperation memory userOp = createUserOp();
6068
signUserOp(userOp);
6169

62-
vm.expectRevert(createEncodedValidationResult(false, 57193));
70+
vm.expectRevert(createEncodedValidationResult(false, 57126));
6371
entrypoint.simulateValidation(userOp);
6472
}
6573

@@ -71,7 +79,7 @@ contract PaymasterTest is Test {
7179
userOp.paymasterAndData = abi.encodePacked(address(paymaster), abi.encode(MOCK_VALID_UNTIL, MOCK_VALID_AFTER), r, s, v);
7280
signUserOp(userOp);
7381

74-
vm.expectRevert(createEncodedValidationResult(false, 55193));
82+
vm.expectRevert(createEncodedValidationResult(false, 55126));
7583
entrypoint.simulateValidation(userOp);
7684
}
7785

@@ -81,7 +89,7 @@ contract PaymasterTest is Test {
8189
userOp.paymasterAndData = abi.encodePacked(address(paymaster), abi.encode(MOCK_VALID_UNTIL, MOCK_VALID_AFTER), r, s, v);
8290
signUserOp(userOp);
8391

84-
vm.expectRevert(createEncodedValidationResult(true, 57199));
92+
vm.expectRevert(createEncodedValidationResult(true, 57132));
8593
entrypoint.simulateValidation(userOp);
8694
}
8795

0 commit comments

Comments
 (0)