The constant MESSAGE_TYPEHASH is defined incorrectly as keccak256("SnowmanClaim(addres receiver, uint256 amount)") instead of keccak256("SnowmanClaim(address receiver, uint256 amount)").
This invalid type hash affects EIP712 signature generation and verification.
Since EIP712 requires that the type hash precisely matches the off-chain signer struct, this typo may cause:
Incorrect digest computation on-chain.
All off-chain signatures generated using the correct schema would fail verification on-chain.
Only clients who replicated this typo off-chain would produce valid signatures.
It tightly couples the system to the typo'd struct and may cause future failures if off-chain code is fixed.
Invalid signature verification.
Incompatibility between off-chain and on-chain signing.
HIGH
Manual verification
Update the constant to:
bytes32 private constant MESSAGE_TYPEHASH = keccak256("SnowmanClaim(address receiver, uint256 amount)");
A typo in the `MESSAGE_TYPEHASH` variable of the `SnowmanAirdrop` contract will prevent signature verification claims. Used `addres` instead of `address`
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.