pub struct HttpClient { /* private fields */ }Expand description
A JSON-RPC/HTTP Tendermint RPC client (implements crate::Client).
Supports both HTTP and HTTPS connections to Tendermint RPC endpoints, and
allows for the use of HTTP proxies (see HttpClient::new_with_proxy for
details).
Does not provide crate::event::Event subscription facilities (see
crate::WebSocketClient for a client that does).
§Examples
use tendermint_rpc::{HttpClient, Client};
#[tokio::main]
async fn main() {
let client = HttpClient::new("http://127.0.0.1:26657")
.unwrap();
let abci_info = client.abci_info()
.await
.unwrap();
println!("Got ABCI info: {:?}", abci_info);
}Implementations§
Source§impl HttpClient
impl HttpClient
Sourcepub fn new_from_parts(inner: Client, url: Url, compat: CompatMode) -> Self
pub fn new_from_parts(inner: Client, url: Url, compat: CompatMode) -> Self
Construct a new Tendermint RPC HTTP/S client connecting to the given
URL. This avoids using the Builder and thus does not perform any
validation of the configuration.
Sourcepub fn new<U>(url: U) -> Result<Self, Error>
pub fn new<U>(url: U) -> Result<Self, Error>
Construct a new Tendermint RPC HTTP/S client connecting to the given URL.
Sourcepub fn new_with_proxy<U, P>(url: U, proxy_url: P) -> Result<Self, Error>
pub fn new_with_proxy<U, P>(url: U, proxy_url: P) -> Result<Self, Error>
Construct a new Tendermint RPC HTTP/S client connecting to the given URL, but via the specified proxy’s URL.
If the RPC endpoint is secured (HTTPS), the proxy will automatically attempt to connect using the HTTP CONNECT method.
Sourcepub fn builder(url: HttpClientUrl) -> Builder
pub fn builder(url: HttpClientUrl) -> Builder
Initiate a builder for a Tendermint RPC HTTP/S client connecting to the given URL, so that more configuration options can be specified with the builder.
Sourcepub fn set_compat_mode(&mut self, compat: CompatMode)
pub fn set_compat_mode(&mut self, compat: CompatMode)
Set compatibility mode on the instantiated client.
As the HTTP client is stateless and does not support subscriptions,
the protocol version it uses can be changed at will, for example,
as a result of version discovery over the /status endpoint.
Trait Implementations§
Source§impl Client for HttpClient
impl Client for HttpClient
Source§fn broadcast_evidence<'life0, 'async_trait>(
&'life0 self,
evidence: Evidence,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn broadcast_evidence<'life0, 'async_trait>(
&'life0 self,
evidence: Evidence,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/broadcast_evidence: broadcast an evidence.
Source§fn perform<'life0, 'async_trait, R>(
&'life0 self,
request: R,
) -> Pin<Box<dyn Future<Output = Result<R::Output, Error>> + Send + 'async_trait>>where
R: SimpleRequest + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
fn perform<'life0, 'async_trait, R>(
&'life0 self,
request: R,
) -> Pin<Box<dyn Future<Output = Result<R::Output, Error>> + Send + 'async_trait>>where
R: SimpleRequest + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
Source§fn block<'life0, 'async_trait, H>(
&'life0 self,
height: H,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
fn block<'life0, 'async_trait, H>( &'life0 self, height: H, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
/block: get block at a given height.Source§fn block_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn block_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/block_by_hash: get block by hash.Source§fn latest_block<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn latest_block<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/block: get the latest block.Source§fn block_results<'life0, 'async_trait, H>(
&'life0 self,
height: H,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
fn block_results<'life0, 'async_trait, H>( &'life0 self, height: H, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
/block_results: get ABCI results for a block at a particular height.Source§fn latest_block_results<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn latest_block_results<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/block_results: get ABCI results for the latest block.Source§fn block_search<'life0, 'async_trait>(
&'life0 self,
query: Query,
page: u32,
per_page: u8,
order: Order,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn block_search<'life0, 'async_trait>(
&'life0 self,
query: Query,
page: u32,
per_page: u8,
order: Order,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/block_search: search for blocks by BeginBlock and EndBlock events.Source§fn header<'life0, 'async_trait, H>(
&'life0 self,
height: H,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
fn header<'life0, 'async_trait, H>( &'life0 self, height: H, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
/header: get block header at a given height.Source§fn header_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn header_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/header_by_hash: get block by hash.Source§fn tx<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
prove: bool,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn tx<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
prove: bool,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/tx: find transaction by hash.Source§fn tx_search<'life0, 'async_trait>(
&'life0 self,
query: Query,
prove: bool,
page: u32,
per_page: u8,
order: Order,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn tx_search<'life0, 'async_trait>(
&'life0 self,
query: Query,
prove: bool,
page: u32,
per_page: u8,
order: Order,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/tx_search: search for transactions with their results.Source§fn broadcast_tx_commit<'life0, 'async_trait, T>(
&'life0 self,
tx: T,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
fn broadcast_tx_commit<'life0, 'async_trait, T>( &'life0 self, tx: T, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
/broadcast_tx_commit: broadcast a transaction, returning the response
from DeliverTx.Source§fn abci_info<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Info, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn abci_info<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Info, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
/abci_info: get information about the ABCI application.Source§fn abci_query<'life0, 'async_trait, V>(
&'life0 self,
path: Option<String>,
data: V,
height: Option<Height>,
prove: bool,
) -> Pin<Box<dyn Future<Output = Result<AbciQuery, Error>> + Send + 'async_trait>>
fn abci_query<'life0, 'async_trait, V>( &'life0 self, path: Option<String>, data: V, height: Option<Height>, prove: bool, ) -> Pin<Box<dyn Future<Output = Result<AbciQuery, Error>> + Send + 'async_trait>>
/abci_query: query the ABCI applicationSource§fn blockchain<'life0, 'async_trait, H>(
&'life0 self,
min: H,
max: H,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
fn blockchain<'life0, 'async_trait, H>( &'life0 self, min: H, max: H, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
Source§fn broadcast_tx_async<'life0, 'async_trait, T>(
&'life0 self,
tx: T,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
fn broadcast_tx_async<'life0, 'async_trait, T>( &'life0 self, tx: T, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
/broadcast_tx_async: broadcast a transaction, returning immediately.Source§fn broadcast_tx_sync<'life0, 'async_trait, T>(
&'life0 self,
tx: T,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
fn broadcast_tx_sync<'life0, 'async_trait, T>( &'life0 self, tx: T, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
/broadcast_tx_sync: broadcast a transaction, returning the response
from CheckTx.Source§fn commit<'life0, 'async_trait, H>(
&'life0 self,
height: H,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
fn commit<'life0, 'async_trait, H>( &'life0 self, height: H, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
/commit: get block commit at a given height.Source§fn consensus_params<'life0, 'async_trait, H>(
&'life0 self,
height: H,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
fn consensus_params<'life0, 'async_trait, H>( &'life0 self, height: H, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
/consensus_params: get current consensus parameters at the specified
height.Source§fn consensus_state<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn consensus_state<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
/consensus_state: get current consensus stateSource§fn validators<'life0, 'async_trait, H>(
&'life0 self,
height: H,
paging: Paging,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
fn validators<'life0, 'async_trait, H>( &'life0 self, height: H, paging: Paging, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
/validators: get validators a given height.Source§fn latest_consensus_params<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn latest_consensus_params<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
/consensus_params: get the latest consensus parameters.Source§fn latest_commit<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn latest_commit<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
/commit: get the latest block commitSource§fn health<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn health<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
/health: get node health. Read moreSource§fn genesis<'life0, 'async_trait, AppState>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Genesis<AppState>, Error>> + Send + 'async_trait>>where
AppState: Debug + Serialize + DeserializeOwned + Send + 'async_trait,
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn genesis<'life0, 'async_trait, AppState>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Genesis<AppState>, Error>> + Send + 'async_trait>>where
AppState: Debug + Serialize + DeserializeOwned + Send + 'async_trait,
Self: Sync + 'async_trait,
'life0: 'async_trait,
/genesis: get genesis file.fn genesis_chunked<'life0, 'async_trait>(
&'life0 self,
chunk: u64,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
Source§fn genesis_chunked_stream<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Pin<Box<dyn Stream<Item = Result<Vec<u8>, Error>> + '_>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn genesis_chunked_stream<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Pin<Box<dyn Stream<Item = Result<Vec<u8>, Error>> + '_>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
/genesis_chunked: get genesis file in multiple chunks.Source§fn net_info<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn net_info<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
/net_info: obtain information about P2P and other network connections.Source§fn status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
/status: get Tendermint status including node info, pubkey, latest
block hash, app hash, block height and time.Source§impl Clone for HttpClient
impl Clone for HttpClient
Source§fn clone(&self) -> HttpClient
fn clone(&self) -> HttpClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more