@@ -319,25 +319,26 @@ impl RewardInfo {
319319 /// At that point the reward stops accruing. This is accepted to keep the dead_liquidity_reward_checkpoint at 8 bytes.
320320 pub fn settle_dead_liquidity_reward (
321321 & mut self ,
322+ pool_liquidity : u128 ,
322323 collect_fee_mode : CollectFeeMode ,
323324 ) -> Result < u64 > {
324- if collect_fee_mode == CollectFeeMode :: Compounding {
325- // saturate on overflow
326- let new_dead_liquidity_reward_checkpoint: u64 = safe_mul_shr_256_cast (
327- U256 :: from ( DEAD_LIQUIDITY ) ,
328- self . reward_per_token_stored ( ) ,
329- TOTAL_REWARD_SCALE ,
330- )
331- . unwrap_or ( u64:: MAX ) ; // saturate to u64::MAX
332-
333- let dead_liquidity_reward = new_dead_liquidity_reward_checkpoint
334- . safe_sub ( self . dead_liquidity_reward_checkpoint ) ?;
335- self . dead_liquidity_reward_checkpoint = new_dead_liquidity_reward_checkpoint;
336-
337- Ok ( dead_liquidity_reward)
338- } else {
339- Ok ( 0 )
325+ if collect_fee_mode != CollectFeeMode :: Compounding || pool_liquidity < DEAD_LIQUIDITY {
326+ return Ok ( 0 ) ;
340327 }
328+
329+ // saturate on overflow
330+ let new_dead_liquidity_reward_checkpoint: u64 = safe_mul_shr_256_cast (
331+ U256 :: from ( DEAD_LIQUIDITY ) ,
332+ self . reward_per_token_stored ( ) ,
333+ TOTAL_REWARD_SCALE ,
334+ )
335+ . unwrap_or ( u64:: MAX ) ; // saturate to u64::MAX
336+
337+ let dead_liquidity_reward =
338+ new_dead_liquidity_reward_checkpoint. safe_sub ( self . dead_liquidity_reward_checkpoint ) ?;
339+ self . dead_liquidity_reward_checkpoint = new_dead_liquidity_reward_checkpoint;
340+
341+ Ok ( dead_liquidity_reward)
341342 }
342343
343344 pub fn get_seconds_elapsed_since_last_update ( & self , current_time : u64 ) -> Result < u64 > {
@@ -1113,7 +1114,8 @@ impl Pool {
11131114 REWARD_RATE_SCALE ,
11141115 ) ?;
11151116
1116- let dead_liquidity_reward = reward_info. settle_dead_liquidity_reward ( collect_fee_mode) ?;
1117+ let dead_liquidity_reward =
1118+ reward_info. settle_dead_liquidity_reward ( self . liquidity , collect_fee_mode) ?;
11171119
11181120 let ineligible_reward = empty_liquidity_reward. safe_add ( dead_liquidity_reward) ?;
11191121
0 commit comments