From 15ced21985e06e8bee1e852c5763581686cd6010 Mon Sep 17 00:00:00 2001
From: Liam Aharon <liam.aharon@hotmail.com>
Date: Sat, 6 Apr 2024 10:05:42 +0400
Subject: [PATCH] reduce code duplication

---
 substrate/frame/asset-rewards/src/lib.rs | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/substrate/frame/asset-rewards/src/lib.rs b/substrate/frame/asset-rewards/src/lib.rs
index 492868dbe53..b1af2847719 100644
--- a/substrate/frame/asset-rewards/src/lib.rs
+++ b/substrate/frame/asset-rewards/src/lib.rs
@@ -628,16 +628,13 @@ pub mod pallet {
 		/// NOTE: this is a pure function without side effects. It does not modify any state
 		/// directly, that is the responsibility of the caller.
 		pub fn update_pool_and_staker_rewards(
-			mut pool_info: PoolInfoFor<T>,
+			pool_info: PoolInfoFor<T>,
 			mut staker_info: PoolStakerInfo<T::Balance>,
 		) -> Result<(PoolInfoFor<T>, PoolStakerInfo<T::Balance>), DispatchError> {
-			let reward_per_token = Self::reward_per_token(&pool_info)?;
-
-			pool_info.last_update_block = frame_system::Pallet::<T>::block_number();
-			pool_info.reward_per_token_stored = reward_per_token;
+			let pool_info = Self::update_pool_rewards(pool_info)?;
 
 			staker_info.rewards = Self::derive_rewards(&pool_info, &staker_info)?;
-			staker_info.reward_per_token_paid = reward_per_token;
+			staker_info.reward_per_token_paid = pool_info.reward_per_token_stored;
 			return Ok((pool_info, staker_info));
 		}
 
-- 
GitLab