diff --git a/tee-worker/Cargo.lock b/tee-worker/Cargo.lock index 6dc20d7c7d..727abd01a8 100644 --- a/tee-worker/Cargo.lock +++ b/tee-worker/Cargo.lock @@ -4444,7 +4444,7 @@ dependencies = [ "parity-scale-codec", "ring 0.16.20", "serde 1.0.210", - "serde_json 1.0.120", + "serde_json 1.0.133", "sgx_tstd", ] diff --git a/tee-worker/common/core-primitives/types/src/parentchain/mod.rs b/tee-worker/common/core-primitives/types/src/parentchain/mod.rs index 64a5eddfc4..3c8d1b729c 100644 --- a/tee-worker/common/core-primitives/types/src/parentchain/mod.rs +++ b/tee-worker/common/core-primitives/types/src/parentchain/mod.rs @@ -32,8 +32,6 @@ use sp_runtime::{ MultiAddress, MultiSignature, }; -use self::events::ParentchainBlockProcessed; - pub type StorageProof = Vec>; // Basic Types. @@ -114,10 +112,6 @@ pub trait FilterEvents { fn get_assertion_created_events(&self) -> Result, Self::Error>; - fn get_parentchain_block_proccessed_events( - &self, - ) -> Result, Self::Error>; - fn get_enclave_added_events(&self) -> Result, Self::Error>; fn get_enclave_removed_events(&self) -> Result, Self::Error>; diff --git a/tee-worker/identity/app-libs/parentchain-interface/src/integritee/event_filter.rs b/tee-worker/identity/app-libs/parentchain-interface/src/integritee/event_filter.rs index c6fcf4d94a..b7d76812c7 100644 --- a/tee-worker/identity/app-libs/parentchain-interface/src/integritee/event_filter.rs +++ b/tee-worker/identity/app-libs/parentchain-interface/src/integritee/event_filter.rs @@ -16,25 +16,56 @@ */ //! Various way to filter Parentchain events -use itc_parentchain_indirect_calls_executor::event_filter::ToEvents; -use itp_api_client_types::Events; - +use itp_api_client_types::{EventDetails, Events}; use itp_node_api::api_client::StaticEvent; use itp_types::{ parentchain::{events::*, FilterEvents}, H256, }; -use std::vec::Vec; +use std::{vec, vec::Vec}; #[derive(Clone)] -pub struct FilterableEvents(pub Events); +pub struct FilterableEvents { + events: Vec>, +} impl FilterableEvents { + pub fn new(events: Events) -> Self { + let mut interesting_events = vec![]; + events.iter().flatten().for_each(|ev| { + // lets keep only events worker is interested in + if ev.pallet_name() == LinkIdentityRequested::PALLET + && ev.variant_name() == LinkIdentityRequested::EVENT + || ev.pallet_name() == VCRequested::PALLET + && ev.variant_name() == VCRequested::EVENT + || ev.pallet_name() == DeactivateIdentityRequested::PALLET + && ev.variant_name() == DeactivateIdentityRequested::EVENT + || ev.pallet_name() == ActivateIdentityRequested::PALLET + && ev.variant_name() == ActivateIdentityRequested::EVENT + || ev.pallet_name() == EnclaveUnauthorized::PALLET + && ev.variant_name() == EnclaveUnauthorized::EVENT + || ev.pallet_name() == OpaqueTaskPosted::PALLET + && ev.variant_name() == OpaqueTaskPosted::EVENT + || ev.pallet_name() == AssertionCreated::PALLET + && ev.variant_name() == AssertionCreated::EVENT + || ev.pallet_name() == EnclaveAdded::PALLET + && ev.variant_name() == EnclaveAdded::EVENT + || ev.pallet_name() == EnclaveRemoved::PALLET + && ev.variant_name() == EnclaveRemoved::EVENT + || ev.pallet_name() == AccountStoreUpdated::PALLET + && ev.variant_name() == AccountStoreUpdated::EVENT + { + interesting_events.push(ev) + } + }); + + Self { events: interesting_events } + } + fn filter(&self) -> Result, E> { Ok(self - .to_events() + .events .iter() - .flatten() .filter_map(|ev| match ev.as_event::() { Ok(maybe_event) => maybe_event, Err(e) => { @@ -46,16 +77,9 @@ impl FilterableEvents { } } -// todo: improve: https://github.com/integritee-network/worker/pull/1378#discussion_r1393933766 -impl ToEvents> for FilterableEvents { - fn to_events(&self) -> &Events { - &self.0 - } -} - impl From> for FilterableEvents { fn from(ev: Events) -> Self { - Self(ev) + Self::new(ev) } } @@ -92,12 +116,6 @@ impl FilterEvents for FilterableEvents { self.filter() } - fn get_parentchain_block_proccessed_events( - &self, - ) -> Result, Self::Error> { - self.filter() - } - fn get_enclave_added_events(&self) -> Result, Self::Error> { self.filter() } diff --git a/tee-worker/identity/app-libs/parentchain-interface/src/integritee/event_handler.rs b/tee-worker/identity/app-libs/parentchain-interface/src/integritee/event_handler.rs index 39569551cd..2db2e4c2ce 100644 --- a/tee-worker/identity/app-libs/parentchain-interface/src/integritee/event_handler.rs +++ b/tee-worker/identity/app-libs/parentchain-interface/src/integritee/event_handler.rs @@ -372,15 +372,6 @@ where .map_err(|_| ParentchainEventProcessingError::AssertionCreatedFailure)?; } - if let Ok(events) = events.get_parentchain_block_proccessed_events() { - debug!("Handling ParentchainBlockProcessed events"); - events.iter().for_each(|event| { - debug!("found ParentchainBlockProcessed event: {:?}", event); - // This is for monitoring purposes - handled_events.push(hash_of(&event)); - }); - } - if let Ok(events) = events.get_account_store_updated_events() { debug!("Handling AccountStoreUpdated events"); events diff --git a/tee-worker/identity/app-libs/parentchain-interface/src/target_a/event_filter.rs b/tee-worker/identity/app-libs/parentchain-interface/src/target_a/event_filter.rs index 95659a3a37..3829a7ae93 100644 --- a/tee-worker/identity/app-libs/parentchain-interface/src/target_a/event_filter.rs +++ b/tee-worker/identity/app-libs/parentchain-interface/src/target_a/event_filter.rs @@ -90,12 +90,6 @@ impl FilterEvents for FilterableEvents { self.filter() } - fn get_parentchain_block_proccessed_events( - &self, - ) -> Result, Self::Error> { - Ok(Vec::new()) - } - fn get_enclave_added_events(&self) -> Result, Self::Error> { self.filter() } diff --git a/tee-worker/identity/app-libs/parentchain-interface/src/target_b/event_filter.rs b/tee-worker/identity/app-libs/parentchain-interface/src/target_b/event_filter.rs index 95659a3a37..3829a7ae93 100644 --- a/tee-worker/identity/app-libs/parentchain-interface/src/target_b/event_filter.rs +++ b/tee-worker/identity/app-libs/parentchain-interface/src/target_b/event_filter.rs @@ -90,12 +90,6 @@ impl FilterEvents for FilterableEvents { self.filter() } - fn get_parentchain_block_proccessed_events( - &self, - ) -> Result, Self::Error> { - Ok(Vec::new()) - } - fn get_enclave_added_events(&self) -> Result, Self::Error> { self.filter() } diff --git a/tee-worker/identity/core/parentchain/indirect-calls-executor/src/mock.rs b/tee-worker/identity/core/parentchain/indirect-calls-executor/src/mock.rs index 16a95d30ce..cac1729af3 100644 --- a/tee-worker/identity/core/parentchain/indirect-calls-executor/src/mock.rs +++ b/tee-worker/identity/core/parentchain/indirect-calls-executor/src/mock.rs @@ -60,12 +60,6 @@ impl FilterEvents for MockEvents { Ok(Vec::new()) } - fn get_parentchain_block_proccessed_events( - &self, - ) -> Result, Self::Error> { - Ok(Vec::new()) - } - fn get_enclave_added_events(&self) -> Result, Self::Error> { Ok(Vec::new()) } diff --git a/tee-worker/identity/enclave-runtime/Cargo.lock b/tee-worker/identity/enclave-runtime/Cargo.lock index ce0b886a15..dfa3f18481 100644 --- a/tee-worker/identity/enclave-runtime/Cargo.lock +++ b/tee-worker/identity/enclave-runtime/Cargo.lock @@ -3002,7 +3002,7 @@ dependencies = [ "parity-scale-codec", "ring 0.16.20", "serde 1.0.204", - "serde_json 1.0.120", + "serde_json 1.0.133", "sgx_tstd", ]