Sabitlenmiş Tweet

🔥 Just shipped a EVM debugger for our open-source Anvil DevNet UI — and it changes everything about debugging on local forks.
The problem: You fork BSC/ETH with Anvil, send a contract call, and the trace gives you 189 raw opcodes — PUSH1, MSTORE, CALLDATASIZE, LOG3 0x8c5be1e5ebec7d5bd14f... 💀
Nobody can read that.
Now it looks like this: 📦 SSTORE — write 0x9731…b862 ← 0x3635…0000 (gas: 22,100) 📢 LOG — Approval(owner = 0xb793…61e2, spender = 0x6ee2…f488, value = 1,000) (gas: 1,756) ✅ RETURN (gas: 0)
Human-readable. Labeled parameters. Formatted values. Rrunning 100% locally on your machine.
Here's what's under the hood:
🔍 Smart Decoding → 20+ hardcoded ERC20/ERC721 selectors as instant fallback (transfer, approve, mint, burn, etc.) → Full viem-powered ABI decoding using decodeFunctionData & decodeEventLog for any registered contract → Named parameters pulled directly from the ABI definition — not just types, actual names like "owner", "spender", "value" → BigInt values formatted as human-readable numbers (1,000 instead of 0x3E8) → Addresses shortened for readability (0xb793…61e2)
🌐 ABI Auto-Fetch — the killer feature When you open any transaction page, it:
Extracts all contract addresses from the trace
Checks local SQLite cache (instant)
Tries Sourcify (for verified open-source contracts)
Falls back to block explorer APIs (Etherscan, BSCScan, Polygonscan, Arbiscan, etc.)
Caches everything in SQLite for instant future lookups
Supports 8 chains out of the box: Ethereum • BSC • Polygon • Arbitrum • Optimism • Base • Avalanche • Fantom
Fork any of these → your traces decode automatically. No config needed.
Styled UI → Color-coded badges: blue CALL, purple DELEGATECALL, cyan STATICCALL, red SSTORE, violet LOG, green RETURN → Depth-based indentation for nested calls → Filter toggles: Gas, Full Trace, Storage, Events → Search across ops, addresses, slots, and decoded names → Green "1 ABI" badge when contract ABI is resolved → "Fetching ABIs…" indicator during auto-fetch
For custom contracts that aren't on Etherscan: Go to /contracts → paste your ABI JSON → done. All future traces for that address decode automatically with full parameter names.
Call Tree also enhanced — shows approve(0xb793…, 1,000) instead of raw selector 0x095ea7b3
Built with Next.js + viem + SQLite + Sourcify + Etherscan APIs
It's fully open source 👇 🔗 github.com/martianacademy…
Star it if this helps your dev workflow ⭐
#Ethereum #Web3 #Solidity #EVM #DevTools #Blockchain #OpenSource #DeFi #SmartContracts #Anvil #Foundry
English
