Module rpc

Module rpc 

Source
Expand description

JSON-RPC server for EDB debugging control and inspection.

This module provides a comprehensive JSON-RPC API that enables front-end applications and debugging clients to interact with the EDB debugging engine. The RPC interface exposes all debugging functionality including snapshot navigation, expression evaluation, storage inspection, and trace analysis.

§Architecture

The RPC system consists of several key components:

  • Server (server) - HTTP/WebSocket server handling client connections
  • Methods (methods) - RPC method implementations organized by functionality
  • Types (types) - Request/response data structures and protocol types
  • Utils (utils) - Common utilities for RPC operations

§API Categories

§Snapshot Management

  • Navigate through execution snapshots (forward/backward)
  • Access snapshot details and execution context
  • Jump to specific execution points

§Expression Evaluation

  • Evaluate Solidity-like expressions against any snapshot
  • Access variables, function calls, and blockchain context
  • Real-time expression evaluation with full debugging context

§Storage and State Inspection

  • Read contract storage and state variables
  • Inspect memory, stack, and call data
  • Access transient storage and EVM state

§Trace Analysis

  • Navigate the complete execution trace
  • Analyze call patterns and execution flow
  • Access detailed opcode-level execution information

§Artifact Management

  • Access compiled contract artifacts and metadata
  • Retrieve source code mappings and debugging information
  • Manage contract compilation and analysis results

§Usage

use edb_engine::rpc::{DebugServer, DebugServerConfig};

// Start the RPC server
let config = DebugServerConfig::default();
let server = DebugServer::new(engine_context, config).await?;
server.run().await?;

§Protocol

The RPC server supports both HTTP POST requests and WebSocket connections for real-time debugging. All methods follow the JSON-RPC 2.0 specification with structured request/response formats defined in the types module.

Re-exports§

pub use server::*;
pub use types::*;

Modules§

methods
JSON-RPC method implementations for EDB debugging API.
server
JSON-RPC server implementation for EDB debugging API.
types
JSON-RPC protocol types and data structures.
utils
Utility functions for RPC server operations.