diff --git a/frame/democracy/src/benchmarking.rs b/frame/democracy/src/benchmarking.rs index d1d3b3e62bddd..ef2c7de27ba59 100644 --- a/frame/democracy/src/benchmarking.rs +++ b/frame/democracy/src/benchmarking.rs @@ -25,7 +25,7 @@ use frame_support::{ traits::{Currency, Get, EnsureOrigin, OnInitialize, UnfilteredDispatchable, schedule::DispatchTime}, }; use frame_system::{RawOrigin, Pallet as System, self}; -use sp_runtime::traits::{Bounded, One}; +use sp_runtime::traits::{Bounded, One, BadOrigin}; use crate::Pallet as Democracy; @@ -759,7 +759,7 @@ benchmarks! { }: enact_proposal(RawOrigin::Root, proposal_hash, 0) verify { // Fails due to mismatched origin - assert_last_event::(Event::::Executed(0, false).into()); + assert_last_event::(Event::::Executed(0, Err(BadOrigin.into())).into()); } #[extra] diff --git a/frame/democracy/src/lib.rs b/frame/democracy/src/lib.rs index 6ebe917f56ae5..b1310efea2401 100644 --- a/frame/democracy/src/lib.rs +++ b/frame/democracy/src/lib.rs @@ -510,8 +510,8 @@ pub mod pallet { NotPassed(ReferendumIndex), /// A referendum has been cancelled. \[ref_index\] Cancelled(ReferendumIndex), - /// A proposal has been enacted. \[ref_index, is_ok\] - Executed(ReferendumIndex, bool), + /// A proposal has been enacted. \[ref_index, result\] + Executed(ReferendumIndex, DispatchResult), /// An account has delegated their vote to another account. \[who, target\] Delegated(T::AccountId, T::AccountId), /// An \[account\] has cancelled a previous delegation operation. @@ -1652,8 +1652,9 @@ impl Pallet { debug_assert!(err_amount.is_zero()); Self::deposit_event(Event::::PreimageUsed(proposal_hash, provider, deposit)); - let ok = proposal.dispatch(frame_system::RawOrigin::Root.into()).is_ok(); - Self::deposit_event(Event::::Executed(index, ok)); + let res = proposal.dispatch(frame_system::RawOrigin::Root.into()) + .map(|_| ()).map_err(|e| e.error); + Self::deposit_event(Event::::Executed(index, res)); Ok(()) } else {