From 3adcd1b7935255f075e8ac459763ff220bb093d3 Mon Sep 17 00:00:00 2001 From: devwckd Date: Thu, 19 Dec 2024 14:07:34 -0300 Subject: [PATCH] refac: try_mutate instead of getting and inserting --- pallets/governance/src/curator.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pallets/governance/src/curator.rs b/pallets/governance/src/curator.rs index fa31f15..8329b77 100644 --- a/pallets/governance/src/curator.rs +++ b/pallets/governance/src/curator.rs @@ -1,6 +1,6 @@ use crate::AccountIdOf; use polkadot_sdk::frame_election_provider_support::Get; -use polkadot_sdk::sp_runtime::Percent; +use polkadot_sdk::sp_runtime::{DispatchError, Percent}; use polkadot_sdk::{ frame_support::dispatch::DispatchResult, frame_system::ensure_signed, polkadot_sdk_frame::prelude::OriginFor, @@ -32,13 +32,15 @@ pub fn penalize_agent( return Err(crate::Error::::InvalidPenaltyPercentage.into()); } - let Some(mut agent) = pallet_torus0::Agents::::get(&agent_key) else { - return Err(crate::Error::::AgentNotFound.into()); - }; + pallet_torus0::Agents::::try_mutate(&agent_key, |agent| { + let Some(agent) = agent else { + return Err(crate::Error::::AgentNotFound.into()); + }; - agent.weight_factor = Percent::from_percent(100u8.saturating_sub(percentage)); + agent.weight_factor = Percent::from_percent(100u8.saturating_sub(percentage)); - pallet_torus0::Agents::::insert(agent_key, agent); + Ok::<(), DispatchError>(()) + })?; Ok(()) }