Protoviz is a web-based interactive testing tool for EVM-based smart contracts. Think Burp Suite, but for Ethereum. It enables exploratory, dynamic testing with full visibility into system state and time-travel capabilities via snapshot/revert.
Features
- Contract graph — interactive node-based visualisation of contract relationships
- Transaction tracing — full internal call trees, state changes, event logs
- Snapshot/revert — time-travel through blockchain state
- Account impersonation — send transactions as any address
- Forge script execution — run scripts directly from the UI
- Value watchers — monitor storage slots, balances, and function returns over time
Architecture
A Turborepo monorepo with three packages:
- Frontend — React 18, React Flow, Zustand, TanStack Query, Tailwind
- Backend — Node.js with Hono, Viem for Anvil RPC
- Shared — Common types and constants
My Contributions
- Graceful Anvil shutdown (wait for clean exit instead of SIGTERM)
- Fixed port leak when Anvil fails to start
- WatcherService race condition fix
- WebSocket dead connection cleanup
- Input validation on API routes
- DeploymentDetector duplicate node prevention