xrpl/asynch/clients/
async_client.rs1use super::{client::XRPLClient, exceptions::XRPLClientResult, CommonFields};
2use crate::models::{
3 requests::{server_state::ServerState, XRPLRequest},
4 results::{server_state::ServerState as ServerStateResult, XRPLResponse},
5};
6
7#[allow(async_fn_in_trait)]
8pub trait XRPLAsyncClient: XRPLClient {
9 async fn request<'a: 'b, 'b>(
10 &self,
11 request: XRPLRequest<'a>,
12 ) -> XRPLClientResult<XRPLResponse<'b>> {
13 self.request_impl(request).await
14 }
15
16 async fn get_common_fields(&self) -> XRPLClientResult<CommonFields<'_>> {
17 let server_state = self.request(ServerState::new(None).into()).await?;
18 let server_state: ServerStateResult = server_state.try_into()?;
19 let common_fields = CommonFields {
20 network_id: None, build_version: Some(server_state.state.build_version),
22 };
23
24 Ok(common_fields)
25 }
26}
27
28impl<T: XRPLClient> XRPLAsyncClient for T {}