From 318b6afecfe67abb40cce61cc656ccf739b0778d Mon Sep 17 00:00:00 2001 From: Paul Clark Date: Wed, 29 Oct 2025 17:26:20 +0000 Subject: [PATCH] Don't pay stake refunds to rewards Stake refunds go to UTXOs, not rewards #319 --- modules/accounts_state/src/state.rs | 34 +---------------------------- 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/modules/accounts_state/src/state.rs b/modules/accounts_state/src/state.rs index db15508d..aeb6eac8 100644 --- a/modules/accounts_state/src/state.rs +++ b/modules/accounts_state/src/state.rs @@ -116,9 +116,6 @@ pub struct State { /// Pool refunds to apply next epoch (list of reward accounts to refund to) pool_refunds: Vec, - /// Stake address refunds to apply next epoch - stake_refunds: Vec<(StakeAddress, Lovelace)>, - /// MIRs to pay next epoch mirs: Vec, @@ -324,7 +321,6 @@ impl State { // Pay the refunds after snapshot, so they don't appear in active_stake reward_deltas.extend(self.pay_pool_refunds()); - reward_deltas.extend(self.pay_stake_refunds()); // Verify pots state verifier.verify_pots(epoch, &self.pots); @@ -496,33 +492,6 @@ impl State { reward_deltas } - /// Pay stake address refunds - fn pay_stake_refunds(&mut self) -> Vec { - let mut reward_deltas = Vec::::new(); - - let refunds = take(&mut self.stake_refunds); - if !refunds.is_empty() { - info!( - "{} deregistered stake addresses, total refunds {}", - refunds.len(), - refunds.iter().map(|(_, n)| n).sum::() - ); - } - - // Send them their deposits back - for (stake_address, deposit) in refunds { - let mut stake_addresses = self.stake_addresses.lock().unwrap(); - reward_deltas.push(StakeRewardDelta { - stake_address: stake_address.clone(), // Extract hash for delta - delta: deposit as i64, - }); - stake_addresses.add_to_reward(&stake_address, deposit); - self.pots.deposits -= deposit; - } - - reward_deltas - } - /// Pay MIRs fn pay_mirs(&mut self) -> Vec { let mut reward_deltas = Vec::::new(); @@ -841,8 +810,7 @@ impl State { } }; - // Schedule refund - self.stake_refunds.push((stake_address.clone(), deposit)); + self.pots.deposits -= deposit; // Add to registration changes self.current_epoch_registration_changes.lock().unwrap().push(RegistrationChange {