Running Uniswap Hook code, including forked chain tests on Hardhat 3
This project use Hardhat3 to build and test a Uniswap v4 Hook on a forked chain. I created a new HH project and rebuilt a uniswap v4 hook project to use the new testing framework. The tests are solidity tests. The tests forks Unichain fork, deploys the contracts, and tests the functionality.
This project is a unichain based uniswap v4 hook that uses an options protocol (Greek.Fi) to convert eth liquidity into options for Uniswap users to purchase through a swap. The project uses many of the uniswap components, such as the Pool Manager and the Universal Router. Uniswap's libraries are incredibly redundant where sub-libraries use different libraries and Hardhat does not allow crossover library objects. Another way to say this is HH is strict (as it should be) on not using objects from one contract definition from a different library into a different library that has a different contract definition. HH caught this issue and I had to fix it with a semi-hack. FYI I noticed a bug that when compiling the build process will still "build" even after a failure, and I would need to kill the process.

