From fb8f746a1b9ea0f011c4bdabbafaf9ff2edc11fb Mon Sep 17 00:00:00 2001 From: FiveMovesAhead Date: Tue, 16 Sep 2025 11:52:44 +0100 Subject: [PATCH] Fix player block data reward calculation. --- tig-protocol/src/contracts/rewards.rs | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/tig-protocol/src/contracts/rewards.rs b/tig-protocol/src/contracts/rewards.rs index a0f34da..7a8c08b 100644 --- a/tig-protocol/src/contracts/rewards.rs +++ b/tig-protocol/src/contracts/rewards.rs @@ -65,9 +65,6 @@ pub(crate) async fn update(cache: &mut AddBlockCache) { let player_data = active_players_block_data .get_mut(&code_details.player_id) .unwrap(); - player_data - .reward_by_type - .insert(EmissionsType::Code, zero.clone()); if code_data.adoption >= adoption_threshold || (is_merged && code_data.adoption > zero) { let reward = reward_pool_per_challenge * code_data.adoption; @@ -76,8 +73,8 @@ pub(crate) async fn update(cache: &mut AddBlockCache) { *player_data .reward_by_type - .get_mut(&EmissionsType::Code) - .unwrap() += code_data.reward; + .entry(EmissionsType::Code) + .or_insert_with(|| zero.clone()) += code_data.reward; } } @@ -101,9 +98,6 @@ pub(crate) async fn update(cache: &mut AddBlockCache) { let player_data = active_players_block_data .get_mut(&advance_details.player_id) .unwrap(); - player_data - .reward_by_type - .insert(EmissionsType::Advance, zero.clone()); if advance_data.adoption >= adoption_threshold || (is_merged && advance_data.adoption > zero) @@ -114,8 +108,8 @@ pub(crate) async fn update(cache: &mut AddBlockCache) { *player_data .reward_by_type - .get_mut(&EmissionsType::Advance) - .unwrap() += advance_data.reward; + .entry(EmissionsType::Advance) + .or_insert_with(|| zero.clone()) += advance_data.reward; } } @@ -159,7 +153,7 @@ pub(crate) async fn update(cache: &mut AddBlockCache) { *player_data .reward_by_type .entry(EmissionsType::Benchmarker) - .or_insert(zero.clone()) += reward; + .or_insert_with(|| zero.clone()) += reward; total_benchmarkers_reward += reward; } @@ -175,7 +169,7 @@ pub(crate) async fn update(cache: &mut AddBlockCache) { *player_data .reward_by_type .entry(EmissionsType::Delegator) - .or_insert(zero.clone()) += reward; + .or_insert_with(|| zero.clone()) += reward; total_delegators_reward += reward; } }