fix: don't wrap rpc error in DisconnectedWillReconnect in reconnecting rpc client (#1904)

* fix: don't wrap rpc err in DisconnectedWillRecon

* add clarifying comment

* fix no-std-test build

* fix no-std-test build v2
This commit is contained in:
Niklas Adolfsson
2025-01-24 14:18:12 +01:00
committed by GitHub
parent dff4dab65e
commit 39507c7eb4
3 changed files with 93 additions and 1153 deletions
@@ -427,7 +427,13 @@ impl RpcClientT for RpcClient {
async {
self.request(method.to_string(), params)
.await
.map_err(|e| SubxtRpcError::DisconnectedWillReconnect(e.to_string()))
.map_err(|e| match e {
Error::DisconnectedWillReconnect(e) => {
SubxtRpcError::DisconnectedWillReconnect(e.to_string())
}
Error::Dropped => SubxtRpcError::ClientError(Box::new(e)),
Error::RpcError(e) => SubxtRpcError::ClientError(Box::new(e)),
})
}
.boxed()
}
@@ -449,7 +455,11 @@ impl RpcClientT for RpcClient {
SubscriptionId::Str(s) => s.to_string(),
};
let stream = sub
.map_err(|e| SubxtRpcError::DisconnectedWillReconnect(e.to_string()))
// NOTE: The stream emits only one error `DisconnectWillReconnect if the connection was lost
// and safe to wrap it in a `SubxtRpcError::DisconnectWillReconnect` here
.map_err(|e: DisconnectedWillReconnect| {
SubxtRpcError::DisconnectedWillReconnect(e.to_string())
})
.boxed();
Ok(RawRpcSubscription {
+76 -1144
View File
File diff suppressed because it is too large Load Diff
+5 -7
View File
@@ -3,12 +3,11 @@
// see LICENSE for license details.
#![allow(internal_features)]
#![feature(lang_items, start)]
#![feature(alloc_error_handler)]
#![feature(lang_items, alloc_error_handler)]
#![no_std]
#![no_main]
#[start]
fn start(_argc: isize, _argv: *const *const u8) -> isize {
pub extern "C" fn _start(_argc: isize, _argv: *const *const u8) -> isize {
compile_test();
0
}
@@ -60,11 +59,10 @@ fn compile_test() {
// Subxt Core compiles:
let _era = subxt_core::utils::Era::Immortal;
}
#[subxt_macro::subxt(
runtime_metadata_path = "../../artifacts/polkadot_metadata_full.scale",
crate="::subxt_core"
crate = "::subxt_core"
)]
pub mod polkadot{}
pub mod polkadot {}