Struct subxt::client::OnlineClient
source · pub struct OnlineClient<T: Config> { /* private fields */ }
Expand description
A client that can be used to perform API calls (that is, either those
requiring an OfflineClientT
or those requiring an OnlineClientT
).
Implementations§
source§impl<T: Config> OnlineClient<T>
impl<T: Config> OnlineClient<T>
sourcepub async fn new() -> Result<OnlineClient<T>, Error>
pub async fn new() -> Result<OnlineClient<T>, Error>
Construct a new OnlineClient
using default settings which
point to a locally running node on ws://127.0.0.1:9944
.
sourcepub async fn from_url(url: impl AsRef<str>) -> Result<OnlineClient<T>, Error>
pub async fn from_url(url: impl AsRef<str>) -> Result<OnlineClient<T>, Error>
Construct a new OnlineClient
, providing a URL to connect to.
source§impl<T: Config> OnlineClient<T>
impl<T: Config> OnlineClient<T>
sourcepub async fn from_rpc_client<R: RpcClientT>(
rpc_client: Arc<R>
) -> Result<OnlineClient<T>, Error>
pub async fn from_rpc_client<R: RpcClientT>( rpc_client: Arc<R> ) -> Result<OnlineClient<T>, Error>
Construct a new OnlineClient
by providing an underlying RpcClientT
implementation to drive the connection.
sourcepub fn from_rpc_client_with<R: RpcClientT>(
genesis_hash: T::Hash,
runtime_version: RuntimeVersion,
metadata: Metadata,
rpc_client: Arc<R>
) -> Result<OnlineClient<T>, Error>
pub fn from_rpc_client_with<R: RpcClientT>( genesis_hash: T::Hash, runtime_version: RuntimeVersion, metadata: Metadata, rpc_client: Arc<R> ) -> Result<OnlineClient<T>, Error>
Construct a new OnlineClient
by providing all of the underlying details needed
to make it work.
Warning
This is considered the most primitive and also error prone way to instantiate a client; the genesis hash, metadata and runtime version provided will entirely determine which node and blocks this client will be able to interact with, and whether it will be able to successfully do things like submit transactions.
If you’re unsure what you’re doing, prefer one of the alternate methods to instantiate a client.
sourcepub fn updater(&self) -> ClientRuntimeUpdater<T>
pub fn updater(&self) -> ClientRuntimeUpdater<T>
Create an object which can be used to keep the runtime up to date in a separate thread.
Example
use subxt::{ OnlineClient, PolkadotConfig };
let client = OnlineClient::<PolkadotConfig>::new().await.unwrap();
// high level API.
let update_task = client.updater();
tokio::spawn(async move {
update_task.perform_runtime_updates().await;
});
// low level API.
let updater = client.updater();
tokio::spawn(async move {
let mut update_stream = updater.runtime_updates().await.unwrap();
while let Some(Ok(update)) = update_stream.next().await {
let version = update.runtime_version().spec_version;
match updater.apply_update(update) {
Ok(()) => {
println!("Upgrade to version: {} successful", version)
}
Err(e) => {
println!("Upgrade to version {} failed {:?}", version, e);
}
};
}
});
sourcepub fn set_metadata(&self, metadata: Metadata)
pub fn set_metadata(&self, metadata: Metadata)
sourcepub fn genesis_hash(&self) -> T::Hash
pub fn genesis_hash(&self) -> T::Hash
Return the genesis hash.
sourcepub fn set_genesis_hash(&self, genesis_hash: T::Hash)
pub fn set_genesis_hash(&self, genesis_hash: T::Hash)
Change the genesis hash used in this client.
Warning
Setting a custom genesis hash may leave Subxt unable to submit valid transactions.
sourcepub fn runtime_version(&self) -> RuntimeVersion
pub fn runtime_version(&self) -> RuntimeVersion
Return the runtime version.
sourcepub fn set_runtime_version(&self, runtime_version: RuntimeVersion)
pub fn set_runtime_version(&self, runtime_version: RuntimeVersion)
Change the RuntimeVersion
used in this client.
Warning
Setting a custom runtime version may leave Subxt unable to submit valid transactions.
sourcepub fn offline(&self) -> OfflineClient<T>
pub fn offline(&self) -> OfflineClient<T>
Return an offline client with the same configuration as this.
sourcepub fn events(&self) -> EventsClient<T, Self>
pub fn events(&self) -> EventsClient<T, Self>
Work with events.
sourcepub fn storage(&self) -> StorageClient<T, Self>
pub fn storage(&self) -> StorageClient<T, Self>
Work with storage.
sourcepub fn constants(&self) -> ConstantsClient<T, Self>
pub fn constants(&self) -> ConstantsClient<T, Self>
Access constants.
sourcepub fn blocks(&self) -> BlocksClient<T, Self>
pub fn blocks(&self) -> BlocksClient<T, Self>
Work with blocks.
sourcepub fn runtime_api(&self) -> RuntimeApiClient<T, Self>
pub fn runtime_api(&self) -> RuntimeApiClient<T, Self>
Work with runtime API.
Trait Implementations§
source§impl<T: Config> Clone for OnlineClient<T>
impl<T: Config> Clone for OnlineClient<T>
source§impl<T: Config> Debug for OnlineClient<T>
impl<T: Config> Debug for OnlineClient<T>
source§impl<T: Config> OfflineClientT<T> for OnlineClient<T>
impl<T: Config> OfflineClientT<T> for OnlineClient<T>
source§fn genesis_hash(&self) -> T::Hash
fn genesis_hash(&self) -> T::Hash
source§fn runtime_version(&self) -> RuntimeVersion
fn runtime_version(&self) -> RuntimeVersion
RuntimeVersion
.source§fn events(&self) -> EventsClient<T, Self>
fn events(&self) -> EventsClient<T, Self>
source§fn storage(&self) -> StorageClient<T, Self>
fn storage(&self) -> StorageClient<T, Self>
source§fn constants(&self) -> ConstantsClient<T, Self>
fn constants(&self) -> ConstantsClient<T, Self>
source§fn blocks(&self) -> BlocksClient<T, Self>
fn blocks(&self) -> BlocksClient<T, Self>
source§fn runtime_api(&self) -> RuntimeApiClient<T, Self>
fn runtime_api(&self) -> RuntimeApiClient<T, Self>
source§impl<T: Config> OnlineClientT<T> for OnlineClient<T>
impl<T: Config> OnlineClientT<T> for OnlineClient<T>
Auto Trait Implementations§
impl<T> !RefUnwindSafe for OnlineClient<T>
impl<T> Send for OnlineClient<T>
impl<T> Sync for OnlineClient<T>
impl<T> Unpin for OnlineClient<T>where T: Unpin,
impl<T> !UnwindSafe for OnlineClient<T>
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where &'a Self: for<'a> IntoIterator,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_mut()
into the pipe
function.§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T
. Read more§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
source§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.