Skip to main content

chainrpc_core/
lib.rs

1//! chainrpc-core — foundation traits and types for ChainRPC.
2//!
3//! # Overview
4//!
5//! ChainRPC provides a production-grade, multi-provider RPC transport layer
6//! for EVM (and other) blockchains. The core crate defines:
7//!
8//! - [`RpcTransport`] — the central async trait every transport implements
9//! - [`JsonRpcRequest`] / [`JsonRpcResponse`] — wire types
10//! - [`TransportError`] — structured error type
11//! - [`HealthStatus`] — provider liveness check
12//! - [`policy`] module — retry, circuit breaker, rate limiter
13//! - [`pool`] module — multi-provider failover pool
14
15pub mod aptos;
16pub mod backpressure;
17pub mod batch;
18pub mod bitcoin;
19pub mod cache;
20pub mod cancellation;
21pub mod chain_client;
22pub mod cosmos;
23pub mod cu_tracker;
24pub mod dedup;
25pub mod error;
26pub mod gas;
27pub mod gas_bumper;
28pub mod geo_routing;
29pub mod health_checker;
30pub mod hedging;
31pub mod method_safety;
32pub mod metrics;
33pub mod mev;
34pub mod multi_chain;
35pub mod pending_pool;
36pub mod policy;
37pub mod pool;
38pub mod rate_limit_headers;
39pub mod reorg;
40pub mod request;
41pub mod routing;
42pub mod selection;
43pub mod shutdown;
44pub mod solana;
45pub mod substrate;
46pub mod sui;
47pub mod transport;
48pub mod tx;
49pub mod tx_lifecycle;
50
51pub use chain_client::{ChainBlock, ChainClient, EvmChainClient, SolanaChainClient};
52pub use error::TransportError;
53pub use pool::{ProviderPool, ProviderPoolConfig};
54pub use request::{JsonRpcRequest, JsonRpcResponse, RpcId, RpcParam};
55pub use transport::{HealthStatus, RpcTransport};