diff --git a/core/src/smartcontracts/isi/world.rs b/core/src/smartcontracts/isi/world.rs index b5bdf1fff29..66338b22a34 100644 --- a/core/src/smartcontracts/isi/world.rs +++ b/core/src/smartcontracts/isi/world.rs @@ -107,13 +107,13 @@ pub mod isi { #[metrics(+"register_role")] fn execute( self, - authority: ::Id, + _authority: ::Id, wsv: &WorldStateView, ) -> Result<(), Self::Error> { - let role_id = role.object.id; + let role_id = self.object.id.clone(); wsv.modify_world(|world| { - world.roles.insert(role_id.clone(), role); + world.roles.insert(role_id.clone(), self.object); Ok(RoleEvent::Created(role_id).into()) }) } diff --git a/data_model/src/events/data/events.rs b/data_model/src/events/data/events.rs index 1596c74ce41..dc0a3ac7e23 100644 --- a/data_model/src/events/data/events.rs +++ b/data_model/src/events/data/events.rs @@ -189,7 +189,7 @@ pub enum WorldEvent { Peer(PeerEvent), #[cfg(feature = "roles")] - Role(Role), + Role(RoleEvent), } /// Event @@ -203,7 +203,7 @@ pub enum Event { Peer(PeerEvent), /// Role event #[cfg(feature = "roles")] - Role(Role), + Role(RoleEvent), /// Account event Account(AccountEvent), /// Asset definition event diff --git a/data_model/src/events/data/filters.rs b/data_model/src/events/data/filters.rs index 5851b34a70f..8bbd5fd84a9 100644 --- a/data_model/src/events/data/filters.rs +++ b/data_model/src/events/data/filters.rs @@ -189,20 +189,15 @@ impl Filter for EntityFilter { fn filter(&self, event: &Event) -> bool { match (self, event) { - (&Self::ByDomain(ref filter_opt), &Event::Domain(ref domain)) => { - filter_opt.filter(domain) - } - (&Self::ByPeer(ref filter_opt), &Event::Peer(ref peer)) => filter_opt.filter(peer), + (Self::ByDomain(filter_opt), Event::Domain(domain)) => filter_opt.filter(domain), + (Self::ByPeer(filter_opt), Event::Peer(peer)) => filter_opt.filter(peer), #[cfg(feature = "roles")] - (&Self::ByRole(ref filter_opt), &Event::Role(ref role)) => filter_opt.filter(role), - (&Self::ByAccount(ref filter_opt), &Event::Account(ref account)) => { - filter_opt.filter(account) + (Self::ByRole(filter_opt), Event::Role(role)) => filter_opt.filter(role), + (Self::ByAccount(filter_opt), Event::Account(account)) => filter_opt.filter(account), + (Self::ByAssetDefinition(filter_opt), Event::AssetDefinition(asset_definition)) => { + filter_opt.filter(asset_definition) } - ( - &Self::ByAssetDefinition(ref filter_opt), - &Event::AssetDefinition(ref asset_definition), - ) => filter_opt.filter(asset_definition), - (&Self::ByAsset(ref filter_opt), &Event::Asset(ref asset)) => filter_opt.filter(asset), + (Self::ByAsset(filter_opt), Event::Asset(asset)) => filter_opt.filter(asset), _ => false, } } diff --git a/data_model/src/events/data/mod.rs b/data_model/src/events/data/mod.rs index 696f23a1ee9..1f79cdc092d 100644 --- a/data_model/src/events/data/mod.rs +++ b/data_model/src/events/data/mod.rs @@ -20,7 +20,7 @@ mod filters; /// Exports common structs and enums from this module. pub mod prelude { #[cfg(feature = "roles")] - pub use super::RoleEvent; + pub use super::events::RoleEvent; pub use super::{ events::{ AccountEvent, AssetDefinitionEvent, AssetEvent, DomainEvent, Event as DataEvent,