diff --git a/shared/src/block.rs b/shared/src/block.rs index 7c26ac55..f60cc165 100644 --- a/shared/src/block.rs +++ b/shared/src/block.rs @@ -703,11 +703,33 @@ impl Block { .flatten() .collect(); + // Push the balance change of the gas payer balance_changes.push(BalanceChange::new( wrapper_tx.fee.gas_payer.clone(), Token::Native(wrapper_tx.fee.gas_token.clone()), )); + // If the token is not the native one also push the balance + // change of PGF (fee reserve) and the block proposer (the + // balance change for the native token is pushed by default) + if &wrapper_tx.fee.gas_token != native_token { + balance_changes.push(BalanceChange::new( + Id::from(namada_sdk::address::Address::Internal( + namada_sdk::address::InternalAddress::Pgf, + )), + Token::Native(wrapper_tx.fee.gas_token.clone()), + )); + + if let Some(block_proposer) = + &self.header.proposer_address_namada + { + balance_changes.push(BalanceChange::new( + Id::Account(block_proposer.to_owned()), + Token::Native(wrapper_tx.fee.gas_token.clone()), + )); + } + } + balance_changes }) .collect()