Skip to content

EVM sidecar#468

Open
mpapierski wants to merge 10 commits into
casper-network:devfrom
mpapierski:evm
Open

EVM sidecar#468
mpapierski wants to merge 10 commits into
casper-network:devfrom
mpapierski:evm

Conversation

@mpapierski
Copy link
Copy Markdown

Summary

This PR adds the casper-sidecar companion surface for the EVM proof-of-concept in casper-network/casper-node#5410.

It exposes Ethereum JSON-RPC methods backed by Casper node binary-port APIs for signed EVM transaction submission, speculative eth_call, block/receipt/log reads, filters, and websocket log subscriptions.

What Changed

  • Adds Ethereum JSON-RPC handlers for chain ID, block number, blocks, nonces, raw transaction submission, receipts, logs, filters, and eth_call.
  • Adds websocket routing for Ethereum log subscriptions.
  • Adds process-local Ethereum log filter state and main_server.max_eth_log_block_range.
  • Projects Casper EVM receipts/logs into Ethereum-compatible JSON-RPC responses.
  • Adds EIP-7702 raw transaction and receipt projection support.
  • Adds EVM transaction-type handling to event-sidecar storage, REST filters, SSE wrappers, and legacy SSE translation paths.
  • Updates OpenRPC schemas, example configs, and docs.
  • Temporarily points casper-types and casper-binary-port at the core EVM branch.

Current Limitations

This is still a PoC surface paired to the core EVM branch.

Missing future RPCs include eth_estimateGas, eth_getBalance, eth_getCode, and eth_getTransactionByHash.

eth_getBlockByNumber returns transaction hashes only. Full transaction objects are rejected for now.

Log filters are sidecar-local and in-memory. Historical log reads are bounded by max_eth_log_block_range.

mpapierski added 10 commits May 11, 2026 16:08
Introduce the initial Ethereum-compatible RPC surface for Casper EVM
transactions, including chain ID, block number, nonce lookup, raw
transaction submission, block lookup, receipt lookup, and call simulation.
Split the implementation into per-method modules with shared Ethereum
JSON-RPC types, examples, and schema coverage.

Wire EVM call simulation through the binary port client and register the
new RPC methods in the sidecar HTTP dispatcher. Update event-sidecar and
legacy SSE transaction handling so EVM transactions are classified and
translated consistently.
Accept EIP-7702 set-code transactions through the existing EVM raw
transaction decoding path and cover the behavior with a signed Alloy
fixture that verifies the forwarded transaction kind and authorization
list.

Map EIP-7702 receipt type 0x04 into Ethereum typed receipts and update
the sidecar schema snapshots for patched core EIP-7702 types.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant