Verification
When to use
- Contract state does not match expected launch/migration behavior
- Rebalances, fee claims, or migration splits need confirmation
- You need deterministic proof from chain data before making changes
Tool selection
cast: fast reads and direct function checksviem: precision-safe math and custom scripts- raw RPC: historical
eth_callat prior blocks - explorers/indexer: events, tx traces, and timeline reconstruction
Core workflow
- Identify module path:
- Dynamic (Doppler) - Multicurve (base/scheduled/decay) - Hook-initializer (DopplerHookInitializer + hooks) - Proceeds split migration (UniswapV4MigratorSplit, TopUpDistributor)
- Read primary state directly from source contract.
- Recompute expected values off-chain (ticks, prices, allocations, proceeds split).
- Compare against emitted events and token balances.
High-impact checks
- Auction progression: epochs, proceeds, sold amounts
- Pool status transitions (
Initialized,Locked,Graduated,Exitedwhere applicable) - Hook permissions/flags and callback state
- Split recipient payout + top-up pull-up outcomes