Skip to content

v0.1.0

Latest

Choose a tag to compare

@Naveen-6087 Naveen-6087 released this 11 Oct 21:28
1275c54

First release of evm-state-diff on crates.io. API documentation is on docs.rs.

evm-state-diff shows exactly what an Ethereum transaction, block or range of blocks changed in state: balances, nonces, code and storage slots. It reads geth's prestateTracer in diff mode and turns its compact encoding into explicit before → after values.

cargo install evm-state-diff
evm-state-diff tx <hash> --rpc $ETH_RPC_URL

Prebuilt binaries for Linux, macOS and Windows are attached below, each with a SHA-256 checksum.

Highlights

  • Commands: tx, block, range and file (or stdin).
  • Net diffs: diffs for a block or a range of blocks, where intermediate writes that cancel out disappear.
  • Filters: by account, change kind (balance, nonce, code, storage), storage slot and minimum balance delta.
  • Output: text, JSON, NDJSON or CSV, with exact decimal wei and full 32-byte words.
  • Hosted providers: retries on 429/5xx and connection errors, and -H headers for API keys.
  • Library features: default-features = false keeps dependencies to serde, serde_json and thiserror; rpc adds the client and cli adds the binary.

Verified against

  • A live geth --dev node: every reported change is checked against eth_getBalance, eth_getTransactionCount, eth_getCode and eth_getStorageAt before and after each transaction, block and range.
  • Property tests that replay random state transitions through geth's diff encoding.
  • Golden outputs from recorded traces.

Full changes: CHANGELOG.md