In Uniswap v4, a hook’s beforeInitialize should validate that the target pool being initialized contains the designated ReFi token on either side of the pair (currency0 or currency1). If the token is present on at least one side, initialization should be allowed to proceed.
The current implementation checks the same side twice and never checks currency0. As a result, pool initialization reverts whenever ReFi is the token at currency0, causing a denial of service for valid pools.
Likelihood: High
Occurs whenever a new pool is initialized with ReFi set as currency0 (common, because token ordering depends on address sorting and deployer choice).
Triggers during standard deployment flows and test setups that happen to place ReFi on the currency0 side.
Impact: High
Prevents creation of valid pools (DoS) for the ReFi token when it is token0, blocking liquidity provisioning and swaps through those pools.
Forces operators to reorder tokens or redeploy, increasing operational risk and potential misconfiguration.
Under the current code, the hook only “passes” beforeInitialize when ReFi is currency1; it always reverts for ReFi as currency0.
Replace the duplicated currency1 check with a currency0:
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.