From 02f17720236af2ecff6ffe35a4dd60c0314e671b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bastian=20K=C3=B6cher?= <bkchr@users.noreply.github.com>
Date: Tue, 28 Apr 2020 12:25:36 +0200
Subject: [PATCH] pallet-sudo: Store `DispatchResult` in `Sudid` event (#5804)

---
 substrate/frame/sudo/src/lib.rs | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/substrate/frame/sudo/src/lib.rs b/substrate/frame/sudo/src/lib.rs
index 0824c7b954c..d19c92358c2 100644
--- a/substrate/frame/sudo/src/lib.rs
+++ b/substrate/frame/sudo/src/lib.rs
@@ -87,7 +87,7 @@
 #![cfg_attr(not(feature = "std"), no_std)]
 
 use sp_std::prelude::*;
-use sp_runtime::traits::{StaticLookup, Dispatchable};
+use sp_runtime::{DispatchResult, traits::{StaticLookup, Dispatchable}};
 
 use frame_support::{
 	Parameter, decl_module, decl_event, decl_storage, decl_error, ensure,
@@ -130,15 +130,8 @@ decl_module! {
 			let sender = ensure_signed(origin)?;
 			ensure!(sender == Self::key(), Error::<T>::RequireSudo);
 
-			let res = match call.dispatch(frame_system::RawOrigin::Root.into()) {
-				Ok(_) => true,
-				Err(e) => {
-					sp_runtime::print(e);
-					false
-				}
-			};
-
-			Self::deposit_event(RawEvent::Sudid(res));
+			let res = call.dispatch(frame_system::RawOrigin::Root.into());
+			Self::deposit_event(RawEvent::Sudid(res.map(|_| ()).map_err(|e| e.error)));
 		}
 
 		/// Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.
@@ -204,7 +197,7 @@ decl_module! {
 decl_event!(
 	pub enum Event<T> where AccountId = <T as frame_system::Trait>::AccountId {
 		/// A sudo just took place.
-		Sudid(bool),
+		Sudid(DispatchResult),
 		/// The sudoer just switched identity; the old key is supplied.
 		KeyChanged(AccountId),
 		/// A sudo just took place.
-- 
GitLab