ci: Add Hunter invariant safety gate for DynamicFeeHook (zero-config, value-conservation regression guardrail)#1
Conversation
|
Hi - small update on this PR; no action needed unless it's useful. This adds one optional CI workflow that runs Hunter's value-conservation invariant suite on this repo's hook(s) on each PR: no free swap round-trip, the hook can't drain the You can see the result for this repo without approving CI - it's on the public board: https://hunterinvariants.github.io/hunter-invariants/leaderboard.html (this repo's hook shows a green PASS, exercised across thousands of fuzzed value-bearing ops). The Action was also run end-to-end on a fork to verify the full CI path. Since it's a third-party action, the safety basics: it makes no network calls, forces No pressure at all - happy to adjust anything or close it. Just wanted to make it easy to evaluate. |
Hey
I built Hunter, a deterministic CI gate for Uniswap v4 hooks (Python stdlib only, no LLM, MIT-licensed). I ran it zero-config against your
DynamicFeeHookand it came back clean PASS — and I thought you might want a CI workflow that runs it on every PR as a regression guardrail.This PR adds one optional workflow file. Deleting it removes the gate; no other dependencies in your repo.
Verbatim verdict on your hook
What Hunter checks
Six universal value-conservation properties that should hold for any v4 hook:
onlyPoolManagerguard.Plus an anti-vacuous coverage gate — if every fuzzed swap reverted, the run reports
INCONCLUSIVEinstead of waving it through. Build/config breakage (wrong solc, missing remapping, asetUp()revert) reports asERROR, never a fake "value-conservation violated."It's fuzzing, not proof — not a full audit.
Cost
Honest framing
Feel free to close if it's not useful — no hard feelings.