Description
The idCommitment value generated during hashing sometimes exceeds the maximum allowed limit defined by the smart contract (Q).
This results in invalid commitments that would be rejected at the contract level.
During testing, most generated values were in the 1e+76 range, with some occasionally in 1e+75, both of which may exceed Q.
Expected Behavior
All idCommitment values should be less than the constant Q defined in the smart contract:
https://github.com/waku-org/waku-rlnv2-contract/blob/b7e9a9b1bc69256a2a3076c1f099b50ce84e7eff/src/WakuRlnV2.sol#L25
Steps to Reproduce
- Run the RLN identity generation logic in a test environment
- Log or inspect the
idCommitment values
- Observe occasional
bigint values larger than Q
- Attempt to use these values on-chain → contract rejects them