harmonize percentage members (#5459)
* harmonize percentage members * update tests * update capitalization when burning fees * verify capitalization in fee burn * fixup
This commit is contained in:
@ -467,8 +467,11 @@ impl Bank {
|
||||
let collector_fees = self.collector_fees.load(Ordering::Relaxed) as u64;
|
||||
|
||||
if collector_fees != 0 {
|
||||
let (unburned, burned) = self.fee_calculator.burn(collector_fees);
|
||||
// burn a portion of fees
|
||||
self.deposit(&self.collector_id, self.fee_calculator.burn(collector_fees));
|
||||
self.deposit(&self.collector_id, unburned);
|
||||
self.capitalization
|
||||
.fetch_sub(burned as usize, Ordering::Relaxed);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1791,10 +1794,13 @@ mod tests {
|
||||
genesis_block.fee_calculator.lamports_per_signature = 4; // something divisible by 2
|
||||
|
||||
let expected_fee_paid = genesis_block.fee_calculator.lamports_per_signature;
|
||||
let expected_fee_collected = genesis_block.fee_calculator.burn(expected_fee_paid);
|
||||
let (expected_fee_collected, expected_fee_burned) =
|
||||
genesis_block.fee_calculator.burn(expected_fee_paid);
|
||||
|
||||
let mut bank = Bank::new(&genesis_block);
|
||||
|
||||
let capitalization = bank.capitalization();
|
||||
|
||||
let key = Keypair::new();
|
||||
let tx = system_transaction::transfer(
|
||||
&mint_keypair,
|
||||
@ -1819,6 +1825,9 @@ mod tests {
|
||||
initial_balance + expected_fee_collected
|
||||
); // Leader collects fee after the bank is frozen
|
||||
|
||||
// verify capitalization
|
||||
assert_eq!(capitalization - expected_fee_burned, bank.capitalization());
|
||||
|
||||
// Verify that an InstructionError collects fees, too
|
||||
let mut bank = Bank::new_from_parent(&Arc::new(bank), &leader, 1);
|
||||
let mut tx =
|
||||
@ -1929,6 +1938,7 @@ mod tests {
|
||||
+ bank
|
||||
.fee_calculator
|
||||
.burn(bank.fee_calculator.lamports_per_signature * 2)
|
||||
.0
|
||||
);
|
||||
assert_eq!(results[0], Ok(()));
|
||||
assert_eq!(results[1], Ok(()));
|
||||
|
Reference in New Issue
Block a user