alloy_rpc_client

Struct RpcClient

source
pub struct RpcClient<T>(/* private fields */);
Expand description

A JSON-RPC client.

RpcClient should never be instantiated directly. Instead, use ClientBuilder.

Implementations§

source§

impl RpcClient<PubSubFrontend>

source

pub async fn connect_pubsub<C>(connect: C) -> TransportResult<Self>
where C: PubSubConnect,

Available on crate feature pubsub only.

Connect to a transport via a PubSubConnect implementor.

source

pub fn channel_size(&self) -> usize

Available on crate feature pubsub only.

Get the currently configured channel size. This is the number of items to buffer in new subscription channels. Defaults to 16. See tokio::sync::broadcast for a description of relevant behavior.

source

pub fn set_channel_size(&self, size: usize)

Available on crate feature pubsub only.

Set the channel size.

source§

impl RpcClient<Identity>

source

pub const fn builder() -> ClientBuilder<Identity>

Create a new ClientBuilder.

source§

impl RpcClient<Http<Client>>

source

pub fn new_http(url: Url) -> Self

Available on crate feature reqwest only.

Create a new RpcClient with an HTTP transport.

source§

impl<T> RpcClient<T>

source

pub fn new(t: T, is_local: bool) -> Self

Creates a new RpcClient with the given transport.

source

pub fn from_inner(inner: RpcClientInner<T>) -> Self

Creates a new RpcClient with the given inner client.

source

pub const fn inner(&self) -> &Arc<RpcClientInner<T>>

Get a reference to the client.

source

pub fn into_inner(self) -> Arc<RpcClientInner<T>>

Convert the client into its inner type.

source

pub fn get_weak(&self) -> WeakClient<T>

Get a Weak reference to the client.

source

pub fn get_ref(&self) -> ClientRef<'_, T>

Borrow the client.

source

pub fn with_poll_interval(self, poll_interval: Duration) -> Self

Sets the poll interval for the client in milliseconds.

Note: This will only set the poll interval for the client if it is the only reference to the inner client. If the reference is held by many, then it will not update the poll interval.

source§

impl<T: Transport> RpcClient<T>

source

pub fn prepare_static_poller<Params, Resp>( &self, method: impl Into<Cow<'static, str>>, params: Params, ) -> PollerBuilder<T, Params, Resp>
where T: Clone, Params: RpcParam + 'static, Resp: RpcReturn + Clone,

Build a poller that polls a method with the given parameters.

See PollerBuilder for examples and more details.

source§

impl<T: Transport + Clone> RpcClient<T>

source

pub fn boxed(self) -> RpcClient<BoxTransport>

Boxes the transport.

This will create a new client if this instance is not the only reference to the inner client.

source§

impl<T> RpcClient<Http<T>>

source

pub fn new_batch(&self) -> BatchRequest<'_, Http<T>>

Create a new BatchRequest builder.

Methods from Deref<Target = RpcClientInner<T>>§

source

pub async fn get_raw_subscription(&self, id: B256) -> RawSubscription

Available on crate feature pubsub only.

Get a RawSubscription for the given subscription ID.

source

pub async fn get_subscription<T: DeserializeOwned>( &self, id: B256, ) -> Subscription<T>

Available on crate feature pubsub only.

Get a Subscription for the given subscription ID.

source

pub fn poll_interval(&self) -> Duration

Returns the default poll interval (milliseconds) for the client.

source

pub fn set_poll_interval(&self, poll_interval: Duration)

Set the poll interval for the client in milliseconds. Default: 7s for remote and 250ms for local transports.

source

pub fn transport(&self) -> &T

Returns a reference to the underlying transport.

source

pub fn pubsub_frontend(&self) -> Option<&PubSubFrontend>
where T: Any,

Available on crate feature pubsub only.

Returns a reference to the pubsub frontend if the transport supports it.

source

pub fn make_request<Params: RpcParam>( &self, method: impl Into<Cow<'static, str>>, params: Params, ) -> Request<Params>

Build a JsonRpcRequest with the given method and params.

This function reserves an ID for the request, however the request is not sent.

To send a request, use RpcClientInner::request and await the returned RpcCall.

source

pub fn is_local(&self) -> bool

true if the client believes the transport is local.

This can be used to optimize remote API usage, or to change program behavior on local endpoints. When the client is instantiated by parsing a URL or other external input, this value is set on a best-efforts basis and may be incorrect.

source

pub fn next_id(&self) -> Id

Reserve a request ID u64.

source

pub fn request<Params: RpcParam, Resp: RpcReturn>( &self, method: impl Into<Cow<'static, str>>, params: Params, ) -> RpcCall<T, Params, Resp>

Prepares an RpcCall.

This function reserves an ID for the request, however the request is not sent. To send a request, await the returned RpcCall.

§Note

Serialization is done lazily. It will not be performed until the call is awaited. This means that if a serializer error occurs, it will not be caught until the call is awaited.

source

pub fn request_noparams<Resp: RpcReturn>( &self, method: impl Into<Cow<'static, str>>, ) -> RpcCall<T, NoParams, Resp>

Prepares an RpcCall with no parameters.

See request for more details.

Trait Implementations§

source§

impl<T> Clone for RpcClient<T>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug> Debug for RpcClient<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T> Deref for RpcClient<T>

source§

type Target = RpcClientInner<T>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<T> Freeze for RpcClient<T>

§

impl<T> RefUnwindSafe for RpcClient<T>
where T: RefUnwindSafe,

§

impl<T> Send for RpcClient<T>
where T: Sync + Send,

§

impl<T> Sync for RpcClient<T>
where T: Sync + Send,

§

impl<T> Unpin for RpcClient<T>

§

impl<T> UnwindSafe for RpcClient<T>
where T: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> TryClone for T
where T: Clone,

source§

fn try_clone(&self) -> Result<T, Error>

Clones self, possibly returning an error.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more