Only return an error if the extrinsic failed. (#156)

This commit is contained in:
David Craven
2020-09-01 10:15:04 +00:00
committed by GitHub
parent 3ea9d3b8bb
commit e9c50e21d0
5 changed files with 76 additions and 35 deletions
+6 -1
View File
@@ -22,6 +22,7 @@ use crate::{
error::Error,
events::{
EventsDecoder,
Raw,
RawEvent,
},
frame::{
@@ -99,13 +100,17 @@ impl<T: Runtime> EventSubscription<T> {
Ok(events) => events,
Err(error) => return Some(Err(error)),
};
for (phase, event) in raw_events {
for (phase, raw) in raw_events {
if let Phase::ApplyExtrinsic(i) = phase {
if let Some(ext_index) = self.extrinsic {
if i as usize != ext_index {
continue
}
}
let event = match raw {
Raw::Event(event) => event,
Raw::Error(err) => return Some(Err(err.into())),
};
if let Some((module, variant)) = self.event {
if event.module != module || event.variant != variant {
continue