The interactive trace viewer provides a powerful search and navigation interface for exploring Stellar Soroban transaction execution traces.
Full Documentation: https://dotandev-hintents-75.mintlify.app/
- Case-insensitive search by default
- Highlights all matches in yellow
- Current match highlighted in green with arrow indicator
- Search across all fields: contract IDs, function names, errors, events, and types
- Match counter: Shows "Match X of Y" status
- Quick navigation: Jump between matches with
nandN
- Hierarchical view of execution trace
- Expand/collapse nodes with Enter/Space
- Expand all with
e - Collapse all with
c - Smooth scrolling with arrow keys, PgUp/PgDn, Home/End
- Visual indicators for expanded (v) and collapsed (>) nodes
- Color-coded elements:
- Contract IDs in cyan
- Function names in blue
- Errors in red
- Search matches in yellow
- Current match in green
- Depth indentation for clear hierarchy
- Cursor indicator (>) for current position
# Debug a transaction with interactive viewer
./erst debug <transaction-hash> --interactive
# Or use the short flag
./erst debug <transaction-hash> -i| Key | Action |
|---|---|
↑ / k |
Move up |
↓ / j |
Move down |
PgUp |
Scroll up one page |
PgDn |
Scroll down one page |
Home / g |
Jump to start |
End / G |
Jump to end |
Enter / Space |
Toggle expand/collapse |
| Key | Action |
|---|---|
/ |
Start search |
Enter |
Execute search |
n |
Next match |
N |
Previous match |
ESC |
Clear search / Cancel input |
| Key | Action |
|---|---|
e |
Expand all nodes |
c |
Collapse all nodes |
| Key | Action |
|---|---|
q / Ctrl+C |
Quit viewer |
? / h |
Show shortcuts help |
Press: /
Type: CDLZFC3
Press: Enter
Finds all nodes containing that contract ID prefix.
Press: /
Type: insufficient
Press: Enter
Finds all error messages containing "insufficient" (case-insensitive).
Press: /
Type: transfer
Press: Enter
Finds all function calls named "transfer".
After searching:
- Press
nto jump to next match - Press
Nto jump to previous match - Navigation wraps around (last → first → second...)
- node.go: Core data structure representing execution tree
- search.go: Search engine with highlighting
- viewer.go: Interactive TUI viewer with Bubbletea
- parser.go: Converts simulator output to trace tree
# Run all tests
go test ./internal/trace/... -v
# With coverage
go test ./internal/trace/... -cover
# Run benchmarks
go test ./internal/trace -bench=.- Search through 1000 nodes: ~10ms
- Match navigation: 65ns (instant)
- Zero allocations for navigation
- Terminal with ANSI color support
- Minimum terminal size: 80x24 recommended
- Ensure you press
Enterafter typing search query - Check that query is not empty
- Try clearing search with
ESCand searching again
- Ensure terminal supports ANSI colors
- Check terminal size (minimum 80x24 recommended)
- Verify bubbletea dependency is installed
Part of the Erst project - see main LICENSE file.