2021-07-20 11:49:32 -07:00
|
|
|
//! A transport for RPC calls.
|
|
|
|
|
2020-03-12 23:20:49 -07:00
|
|
|
use crate::{client_error::Result, rpc_request::RpcRequest};
|
2019-03-16 21:51:41 -07:00
|
|
|
|
2021-07-20 11:49:32 -07:00
|
|
|
/// A transport for RPC calls.
|
|
|
|
///
|
|
|
|
/// `RpcSender` implements the underlying transport of requests to, and
|
|
|
|
/// responses from, a Solana node, and is used primarily by [`RpcClient`].
|
|
|
|
///
|
|
|
|
/// It is typically implemented by [`HttpSender`] in production, and
|
|
|
|
/// [`MockSender`] in unit tests.
|
|
|
|
///
|
|
|
|
/// [`RpcClient`]: crate::rpc_client::RpcClient
|
|
|
|
/// [`HttpSender`]: crate::http_sender::HttpSender
|
|
|
|
/// [`MockSender`]: crate::mock_sender::MockSender
|
2020-05-20 18:40:45 -07:00
|
|
|
pub trait RpcSender {
|
2020-05-22 08:53:53 -07:00
|
|
|
fn send(&self, request: RpcRequest, params: serde_json::Value) -> Result<serde_json::Value>;
|
2019-03-16 21:51:41 -07:00
|
|
|
}
|