From 1ce2fb71aa40d721ea4c43f75ff1f085c59f0c8b Mon Sep 17 00:00:00 2001 From: f-squirrel Date: Thu, 21 Dec 2023 18:05:16 +0200 Subject: [PATCH] fix: cache extrinsic events --- codegen/src/types/mod.rs | 2 +- lightclient/src/platform/mod.rs | 2 +- subxt/src/backend/rpc/rpc_client.rs | 5 +---- subxt/src/blocks/block_types.rs | 8 +++++--- testing/test-runtime/build.rs | 5 +---- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/codegen/src/types/mod.rs b/codegen/src/types/mod.rs index 338da6109d..2052ac2e76 100644 --- a/codegen/src/types/mod.rs +++ b/codegen/src/types/mod.rs @@ -21,7 +21,7 @@ use crate::error::CodegenError; pub use self::{ composite_def::{CompositeDef, CompositeDefFieldType, CompositeDefFields}, derives::{Derives, DerivesRegistry}, - substitutes::{AbsolutePath, TypeSubstitutes}, + substitutes::TypeSubstitutes, type_def::TypeDefGen, type_def_params::TypeDefParameters, type_path::{TypeParameter, TypePath, TypePathType}, diff --git a/lightclient/src/platform/mod.rs b/lightclient/src/platform/mod.rs index bfba17c029..7a1182da66 100644 --- a/lightclient/src/platform/mod.rs +++ b/lightclient/src/platform/mod.rs @@ -11,7 +11,7 @@ mod wasm_platform; #[cfg(feature = "web")] mod wasm_socket; -pub use helpers::{build_platform, PlatformType}; +pub use helpers::build_platform; #[cfg(feature = "native")] mod helpers { diff --git a/subxt/src/backend/rpc/rpc_client.rs b/subxt/src/backend/rpc/rpc_client.rs index 0e4bb62940..4302b9867e 100644 --- a/subxt/src/backend/rpc/rpc_client.rs +++ b/subxt/src/backend/rpc/rpc_client.rs @@ -230,10 +230,7 @@ impl Stream for RpcSubscription { mod jsonrpsee_helpers { pub use jsonrpsee::{ client_transport::ws::{Receiver, Sender, Url, WsTransportClientBuilder}, - core::{ - client::{Client, ClientBuilder}, - Error, - }, + core::{client::Client, Error}, }; /// Build WS RPC client from URL diff --git a/subxt/src/blocks/block_types.rs b/subxt/src/blocks/block_types.rs index 2b160ea2d2..a1cb01ec25 100644 --- a/subxt/src/blocks/block_types.rs +++ b/subxt/src/blocks/block_types.rs @@ -123,13 +123,15 @@ where // Acquire lock on the events cache. We either get back our events or we fetch and set them // before unlocking, so only one fetch call should ever be made. We do this because the // same events can be shared across all extrinsics in the block. - let lock = cached_events.lock().await; + let mut lock = cached_events.lock().await; let events = match &*lock { Some(events) => events.clone(), None => { - events::EventsClient::new(client.clone()) + let events = events::EventsClient::new(client.clone()) .at(block_hash) - .await? + .await?; + lock.replace(events.clone()); + events } }; diff --git a/testing/test-runtime/build.rs b/testing/test-runtime/build.rs index 23643e491d..9a6ae962b6 100644 --- a/testing/test-runtime/build.rs +++ b/testing/test-runtime/build.rs @@ -103,10 +103,7 @@ async fn run() { mod client { pub use jsonrpsee::{ client_transport::ws::{Receiver, Sender, Url, WsTransportClientBuilder}, - core::{ - client::{Client, ClientBuilder}, - Error, - }, + core::{client::Client, Error}, }; pub use jsonrpsee::core::{client::ClientT, rpc_params};