From 132e78a5323e86b70865cc4d4a764716642f63d8 Mon Sep 17 00:00:00 2001 From: Gregory Hill Date: Mon, 15 Mar 2021 14:53:46 +0000 Subject: [PATCH 1/3] return none if subscription returns early Signed-off-by: Gregory Hill --- src/subscription.rs | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/subscription.rs b/src/subscription.rs index 485c6143409..ccb70bb3472 100644 --- a/src/subscription.rs +++ b/src/subscription.rs @@ -95,14 +95,7 @@ impl<'a, T: Runtime> EventSubscription<'a, T> { if self.finished { return None } - let change_set = match self.subscription.next().await { - Some(c) => c, - None => { - return Some(Err( - RpcError::Custom("RPC subscription dropped".into()).into() - )) - } - }; + let change_set = self.subscription.next().await?; if let Some(hash) = self.block.as_ref() { if &change_set.block == hash { self.finished = true; @@ -184,13 +177,12 @@ impl FinalizedEventStorageSubscription { return Some(storage_change) } let header: T::Header = self.subscription.next().await?; - if let Ok(storage_changes) = self - .rpc - .query_storage_at(&[self.storage_key.clone()], Some(header.hash())) - .await - { - self.storage_changes.extend(storage_changes); - } + self.storage_changes.extend( + self.rpc + .query_storage_at(&[self.storage_key.clone()], Some(header.hash())) + .await + .ok()?, + ); } } } From e36114c508f343ffc1807890a673d7ccae970f16 Mon Sep 17 00:00:00 2001 From: Gregory Hill Date: Mon, 15 Mar 2021 17:10:00 +0000 Subject: [PATCH 2/3] add comment on subscription close Signed-off-by: Gregory Hill --- src/subscription.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/subscription.rs b/src/subscription.rs index ccb70bb3472..32b44475152 100644 --- a/src/subscription.rs +++ b/src/subscription.rs @@ -95,6 +95,7 @@ impl<'a, T: Runtime> EventSubscription<'a, T> { if self.finished { return None } + // always return None if subscription has closed let change_set = self.subscription.next().await?; if let Some(hash) = self.block.as_ref() { if &change_set.block == hash { From 17217daa2bf0a0d5ec3717ba088fb0261c481a18 Mon Sep 17 00:00:00 2001 From: Gregory Hill Date: Wed, 17 Mar 2021 11:11:17 +0000 Subject: [PATCH 3/3] no need for jsonrpsee error enum Signed-off-by: Gregory Hill --- src/subscription.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/subscription.rs b/src/subscription.rs index 32b44475152..8ade68a7890 100644 --- a/src/subscription.rs +++ b/src/subscription.rs @@ -14,7 +14,6 @@ // You should have received a copy of the GNU General Public License // along with substrate-subxt. If not, see . -use jsonrpsee_types::error::Error as RpcError; use jsonrpsee_ws_client::WsSubscription as Subscription; use sp_core::{ storage::{