From 8525ce9f324fb8888be734a1f51abab56f1f7d98 Mon Sep 17 00:00:00 2001 From: Santiago Pittella Date: Wed, 28 Feb 2024 13:10:54 +0100 Subject: [PATCH] fix effective gas price calculation to be backward compatible with legacy txs --- core/lib/types/src/fee.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/lib/types/src/fee.rs b/core/lib/types/src/fee.rs index 5f32beb2fd4..fa9cf80f2a6 100644 --- a/core/lib/types/src/fee.rs +++ b/core/lib/types/src/fee.rs @@ -74,8 +74,14 @@ impl Fee { assert!(block_base_fee_per_gas <= self.max_fee_per_gas); assert!(self.max_priority_fee_per_gas <= self.max_fee_per_gas); - // For now, we charge only for base fee. - block_base_fee_per_gas + // The following calculation is based on the EIP-1559 formula: + // https://eips.ethereum.org/EIPS/eip-1559 + let priority_fee_per_gas = std::cmp::min( + self.max_priority_fee_per_gas, + self.max_fee_per_gas - block_base_fee_per_gas, + ); + + block_base_fee_per_gas + priority_fee_per_gas } }