The hook declares afterInitialize: true and beforeInitialize: false, but the deploy script mines an address with BEFORE_INITIALIZE_FLAG instead of AFTER_INITIALIZE_FLAG. Uniswap v4 uses address-encoded flags to decide which callbacks to invoke; therefore afterInitialize is not invoked, leaving launchStartBlock == 0 forever. Any swap reverts with PoolNotInitialized().
Likelihood:
The provided deployment procedure (DeployHookScript) is used to deploy the hook for production/contest use, so the mined address will lack AFTER_INITIALIZE_FLAG every time.
Impact:
All swaps in pools that rely on this deployed hook revert with PoolNotInitialized(), causing full trading DoS.
Match the flags in the script and in the src
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.
The contest is complete and the rewards are being distributed.