From 1584fc5cbf985b77042913a62ee3029e09573080 Mon Sep 17 00:00:00 2001 From: Hardhat Chad Date: Wed, 28 Aug 2024 16:37:56 +0000 Subject: [PATCH] fix overflow issue --- program/src/mine.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/program/src/mine.rs b/program/src/mine.rs index 5c05b8a..849b27b 100644 --- a/program/src/mine.rs +++ b/program/src/mine.rs @@ -96,10 +96,11 @@ pub fn process_mine(accounts: &[AccountInfo], data: &[u8]) -> ProgramResult { let normalized_difficulty = difficulty .checked_sub(config.min_difficulty as u32) .unwrap(); - let mut reward = config + let base_reward = config .base_reward_rate .checked_mul(2u64.checked_pow(normalized_difficulty).unwrap()) .unwrap(); + let mut reward = base_reward; // Apply boosts. // @@ -177,7 +178,7 @@ pub fn process_mine(accounts: &[AccountInfo], data: &[u8]) -> ProgramResult { // Apply multiplier if boost is not expired and last stake at was more than one minute ago. if boost.expires_at.gt(&t) && stake.last_stake_at.saturating_add(ONE_MINUTE).le(&t) { let multiplier = boost.multiplier.checked_sub(1).unwrap(); - let boost_reward = (reward as u128) + let boost_reward = (base_reward as u128) .checked_mul(multiplier as u128) .unwrap() .checked_mul(stake.balance as u128)