From 378bc56e2ff3b4dd14cc758a3925e847a982ea65 Mon Sep 17 00:00:00 2001 From: Will Hickey Date: Mon, 29 Jan 2024 13:41:34 -0600 Subject: [PATCH] Revert "Remove congestion multiplier from calculate fee (#34865)" This reverts commit 73d3973c7c26848c50522396962daf520be4536e. --- runtime/src/bank.rs | 11 ----------- runtime/src/bank/tests.rs | 1 + sdk/src/fee.rs | 12 ++++++++++-- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 38de7ff18de594..bccfa595ac33f7 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -6660,17 +6660,6 @@ impl Bank { &self.runtime_config.compute_budget.unwrap_or_default(), false, /* debugging_features */ )); - - // genesis_config loaded by accounts_db::open_genesis_config() from ledger - // has it's lamports_per_signature set to zero; bank sets its value correctly - // after the first block with a transaction in it. This is a hack to mimic - // the process. - let derived_fee_rate_governor = - FeeRateGovernor::new_derived(&genesis_config.fee_rate_governor, 0); - // new bank's fee_structure.lamports_per_signature should be inline with - // what's configured in GenesisConfig - self.fee_structure.lamports_per_signature = - derived_fee_rate_governor.lamports_per_signature; } pub fn set_inflation(&self, inflation: Inflation) { diff --git a/runtime/src/bank/tests.rs b/runtime/src/bank/tests.rs index efe8b1970dfeff..0a8309bdd37cb5 100644 --- a/runtime/src/bank/tests.rs +++ b/runtime/src/bank/tests.rs @@ -3335,6 +3335,7 @@ fn test_bank_parent_account_spend() { let key2 = Keypair::new(); let (parent, bank_forks) = Bank::new_with_bank_forks_for_tests(&genesis_config); let amount = genesis_config.rent.minimum_balance(0); + println!("==== amount {}", amount); let tx = system_transaction::transfer(&mint_keypair, &key1.pubkey(), amount, genesis_config.hash()); diff --git a/sdk/src/fee.rs b/sdk/src/fee.rs index 2fb045aba5d73e..f3377b5254f0a6 100644 --- a/sdk/src/fee.rs +++ b/sdk/src/fee.rs @@ -80,10 +80,17 @@ impl FeeStructure { pub fn calculate_fee( &self, message: &SanitizedMessage, - _lamports_per_signature: u64, + lamports_per_signature: u64, budget_limits: &FeeBudgetLimits, include_loaded_account_data_size_in_fee: bool, ) -> u64 { + // Fee based on compute units and signatures + let congestion_multiplier = if lamports_per_signature == 0 { + 0.0 // test only + } else { + 1.0 // multiplier that has no effect + }; + let signature_fee = message .num_signatures() .saturating_mul(self.lamports_per_signature); @@ -115,11 +122,12 @@ impl FeeStructure { .unwrap_or_default() }); - (budget_limits + ((budget_limits .prioritization_fee .saturating_add(signature_fee) .saturating_add(write_lock_fee) .saturating_add(compute_fee) as f64) + * congestion_multiplier) .round() as u64 } }