Inside _beforeInitialize, the contract intends to enforce that at least one side of the pool (currency0 or currency1) must equal the ReFi token.
However, the implemented code contains a critical mistake:
Notice that currency1 is checked twice, and currency0 is never checked.
Likelihood:
Uniswap V4 pool ordering depends on token address ordering rules. In many cases, ReFi will appear in currency0, not currency1, making this bug occur frequently and unpredictably. Any pool where ReFi is currency0 will always revert.
Impact:
The hook incorrectly checks currency1 twice and never checks currency0, causing the contract to incorrectly revert for valid pools where the ReFi token is placed in currency0.
None required
Correct logic should be:
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.