diff --git a/bridges/modules/finality-verifier/src/lib.rs b/bridges/modules/finality-verifier/src/lib.rs index 41a6cacc15..7c331bc09e 100644 --- a/bridges/modules/finality-verifier/src/lib.rs +++ b/bridges/modules/finality-verifier/src/lib.rs @@ -222,26 +222,19 @@ pub mod pallet { Ok(().into()) } - /// Halt all pallet operations. Operations may be resumed using `resume_operations` call. + /// Halt or resume all pallet operations. /// /// May only be called either by root, or by `ModuleOwner`. #[pallet::weight((T::DbWeight::get().reads_writes(1, 1), DispatchClass::Operational))] - pub fn halt_operations(origin: OriginFor) -> DispatchResultWithPostInfo { + pub fn set_operational(origin: OriginFor, operational: bool) -> DispatchResultWithPostInfo { ensure_owner_or_root::(origin)?; - >::put(true); - log::warn!("Stopping pallet operations."); + >::put(operational); - Ok(().into()) - } - - /// Resume all pallet operations. May be called even if pallet is halted. - /// - /// May only be called either by root, or by `ModuleOwner`. - #[pallet::weight((T::DbWeight::get().reads_writes(1, 1), DispatchClass::Operational))] - pub fn resume_operations(origin: OriginFor) -> DispatchResultWithPostInfo { - ensure_owner_or_root::(origin)?; - >::put(false); - log::info!("Resuming pallet operations."); + if operational { + log::info!("Resuming pallet operations."); + } else { + log::warn!("Stopping pallet operations."); + } Ok(().into()) } @@ -655,29 +648,29 @@ mod tests { assert_ok!(Module::::set_owner(Origin::root(), Some(1))); assert_noop!( - Module::::halt_operations(Origin::signed(2)), + Module::::set_operational(Origin::signed(2), false), DispatchError::BadOrigin, ); - assert_ok!(Module::::halt_operations(Origin::root())); + assert_ok!(Module::::set_operational(Origin::root(), false)); assert_ok!(Module::::set_owner(Origin::signed(1), None)); assert_noop!( - Module::::resume_operations(Origin::signed(1)), + Module::::set_operational(Origin::signed(1), true), DispatchError::BadOrigin, ); assert_noop!( - Module::::resume_operations(Origin::signed(2)), + Module::::set_operational(Origin::signed(2), true), DispatchError::BadOrigin, ); - assert_ok!(Module::::resume_operations(Origin::root())); + assert_ok!(Module::::set_operational(Origin::root(), true)); }); } #[test] fn pallet_may_be_halted_by_root() { run_test(|| { - assert_ok!(Module::::halt_operations(Origin::root())); - assert_ok!(Module::::resume_operations(Origin::root())); + assert_ok!(Module::::set_operational(Origin::root(), false)); + assert_ok!(Module::::set_operational(Origin::root(), true)); }); } @@ -686,21 +679,21 @@ mod tests { run_test(|| { ModuleOwner::::put(2); - assert_ok!(Module::::halt_operations(Origin::signed(2))); - assert_ok!(Module::::resume_operations(Origin::signed(2))); + assert_ok!(Module::::set_operational(Origin::signed(2), false)); + assert_ok!(Module::::set_operational(Origin::signed(2), true)); assert_noop!( - Module::::halt_operations(Origin::signed(1)), + Module::::set_operational(Origin::signed(1), false), DispatchError::BadOrigin, ); assert_noop!( - Module::::resume_operations(Origin::signed(1)), + Module::::set_operational(Origin::signed(1), true), DispatchError::BadOrigin, ); - assert_ok!(Module::::halt_operations(Origin::signed(2))); + assert_ok!(Module::::set_operational(Origin::signed(2), false)); assert_noop!( - Module::::resume_operations(Origin::signed(1)), + Module::::set_operational(Origin::signed(1), true), DispatchError::BadOrigin, ); }); diff --git a/bridges/modules/message-lane/src/lib.rs b/bridges/modules/message-lane/src/lib.rs index cf434229ff..3132773ead 100644 --- a/bridges/modules/message-lane/src/lib.rs +++ b/bridges/modules/message-lane/src/lib.rs @@ -264,24 +264,19 @@ decl_module! { } } - /// Halt all pallet operations. Operations may be resumed using `resume_operations` call. + /// Halt or resume all pallet operations. /// /// May only be called either by root, or by `ModuleOwner`. #[weight = (T::DbWeight::get().reads_writes(1, 1), DispatchClass::Operational)] - pub fn halt_operations(origin) { + pub fn set_operational(origin, operational: bool) { ensure_owner_or_root::(origin)?; - IsHalted::::put(true); - log::warn!("Stopping pallet operations."); - } + >::put(operational); - /// Resume all pallet operations. May be called even if pallet is halted. - /// - /// May only be called either by root, or by `ModuleOwner`. - #[weight = (T::DbWeight::get().reads_writes(1, 1), DispatchClass::Operational)] - pub fn resume_operations(origin) { - ensure_owner_or_root::(origin)?; - IsHalted::::put(false); - log::info!("Resuming pallet operations."); + if operational { + log::info!("Resuming pallet operations."); + } else { + log::warn!("Stopping pallet operations."); + } } /// Update pallet parameter. @@ -915,29 +910,29 @@ mod tests { assert_ok!(Module::::set_owner(Origin::root(), Some(1))); assert_noop!( - Module::::halt_operations(Origin::signed(2)), + Module::::set_operational(Origin::signed(2), false), DispatchError::BadOrigin, ); - assert_ok!(Module::::halt_operations(Origin::root())); + assert_ok!(Module::::set_operational(Origin::root(), false)); assert_ok!(Module::::set_owner(Origin::signed(1), None)); assert_noop!( - Module::::resume_operations(Origin::signed(1)), + Module::::set_operational(Origin::signed(1), true), DispatchError::BadOrigin, ); assert_noop!( - Module::::resume_operations(Origin::signed(2)), + Module::::set_operational(Origin::signed(2), true), DispatchError::BadOrigin, ); - assert_ok!(Module::::resume_operations(Origin::root())); + assert_ok!(Module::::set_operational(Origin::root(), true)); }); } #[test] fn pallet_may_be_halted_by_root() { run_test(|| { - assert_ok!(Module::::halt_operations(Origin::root())); - assert_ok!(Module::::resume_operations(Origin::root())); + assert_ok!(Module::::set_operational(Origin::root(), false)); + assert_ok!(Module::::set_operational(Origin::root(), true)); }); } @@ -946,21 +941,21 @@ mod tests { run_test(|| { ModuleOwner::::put(2); - assert_ok!(Module::::halt_operations(Origin::signed(2))); - assert_ok!(Module::::resume_operations(Origin::signed(2))); + assert_ok!(Module::::set_operational(Origin::signed(2), false)); + assert_ok!(Module::::set_operational(Origin::signed(2), true)); assert_noop!( - Module::::halt_operations(Origin::signed(1)), + Module::::set_operational(Origin::signed(1), false), DispatchError::BadOrigin, ); assert_noop!( - Module::::resume_operations(Origin::signed(1)), + Module::::set_operational(Origin::signed(1), true), DispatchError::BadOrigin, ); - assert_ok!(Module::::halt_operations(Origin::signed(2))); + assert_ok!(Module::::set_operational(Origin::signed(2), false)); assert_noop!( - Module::::resume_operations(Origin::signed(1)), + Module::::set_operational(Origin::signed(1), true), DispatchError::BadOrigin, ); });