From 1e66c9ff2c5886ec611b2d2dc41444df3db4ae47 Mon Sep 17 00:00:00 2001 From: Daniel Savu <23065004+daniel-savu@users.noreply.github.com> Date: Thu, 9 Jan 2025 14:35:51 +0000 Subject: [PATCH 1/2] fix: more conservative polygon gas price estimates --- ethers-middleware/src/gas_oracle/polygon.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ethers-middleware/src/gas_oracle/polygon.rs b/ethers-middleware/src/gas_oracle/polygon.rs index a96be2067..f223ed035 100644 --- a/ethers-middleware/src/gas_oracle/polygon.rs +++ b/ethers-middleware/src/gas_oracle/polygon.rs @@ -8,6 +8,9 @@ use url::Url; const MAINNET_URL: &str = "https://gasstation.polygon.technology/v2"; const MUMBAI_URL: &str = "https://gasstation-testnet.polygon.technology/v2"; +const BASE_FEE_BUFFER: f64 = 1.5; +const PRIO_FEE_BUFFER: f64 = 1.1; + /// The [Polygon](https://docs.polygon.technology/docs/develop/tools/polygon-gas-station/) gas station API /// Queries over HTTP and implements the `GasOracle` trait #[derive(Clone, Debug)] @@ -71,8 +74,9 @@ impl Response { impl GasOracle for Polygon { async fn fetch(&self) -> Result { let response = self.query().await?; - let base = response.estimated_base_fee; - let prio = response.estimate_from_category(self.gas_category).max_priority_fee; + let base = response.estimated_base_fee * BASE_FEE_BUFFER; + let prio = + response.estimate_from_category(self.gas_category).max_priority_fee * PRIO_FEE_BUFFER; let fee = base + prio; Ok(from_gwei(fee)) } @@ -80,8 +84,8 @@ impl GasOracle for Polygon { async fn estimate_eip1559_fees(&self) -> Result<(U256, U256), GasOracleError> { let response = self.query().await?; let estimate = response.estimate_from_category(self.gas_category); - let max = from_gwei(estimate.max_fee); - let prio = from_gwei(estimate.max_priority_fee); + let max = from_gwei(estimate.max_fee * BASE_FEE_BUFFER); + let prio = from_gwei(estimate.max_priority_fee * PRIO_FEE_BUFFER); Ok((max, prio)) } } From d75db30f97780c0a55e9931e4e628b03747aeb29 Mon Sep 17 00:00:00 2001 From: Daniel Savu <23065004+daniel-savu@users.noreply.github.com> Date: Thu, 9 Jan 2025 14:36:48 +0000 Subject: [PATCH 2/2] better naming --- ethers-middleware/src/gas_oracle/polygon.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ethers-middleware/src/gas_oracle/polygon.rs b/ethers-middleware/src/gas_oracle/polygon.rs index f223ed035..7f7e88dc3 100644 --- a/ethers-middleware/src/gas_oracle/polygon.rs +++ b/ethers-middleware/src/gas_oracle/polygon.rs @@ -8,8 +8,8 @@ use url::Url; const MAINNET_URL: &str = "https://gasstation.polygon.technology/v2"; const MUMBAI_URL: &str = "https://gasstation-testnet.polygon.technology/v2"; -const BASE_FEE_BUFFER: f64 = 1.5; -const PRIO_FEE_BUFFER: f64 = 1.1; +const BASE_FEE_MULTIPLIER: f64 = 1.5; +const PRIO_FEE_MULTIPLIER: f64 = 1.1; /// The [Polygon](https://docs.polygon.technology/docs/develop/tools/polygon-gas-station/) gas station API /// Queries over HTTP and implements the `GasOracle` trait @@ -74,9 +74,9 @@ impl Response { impl GasOracle for Polygon { async fn fetch(&self) -> Result { let response = self.query().await?; - let base = response.estimated_base_fee * BASE_FEE_BUFFER; - let prio = - response.estimate_from_category(self.gas_category).max_priority_fee * PRIO_FEE_BUFFER; + let base = response.estimated_base_fee * BASE_FEE_MULTIPLIER; + let prio = response.estimate_from_category(self.gas_category).max_priority_fee + * PRIO_FEE_MULTIPLIER; let fee = base + prio; Ok(from_gwei(fee)) } @@ -84,8 +84,8 @@ impl GasOracle for Polygon { async fn estimate_eip1559_fees(&self) -> Result<(U256, U256), GasOracleError> { let response = self.query().await?; let estimate = response.estimate_from_category(self.gas_category); - let max = from_gwei(estimate.max_fee * BASE_FEE_BUFFER); - let prio = from_gwei(estimate.max_priority_fee * PRIO_FEE_BUFFER); + let max = from_gwei(estimate.max_fee * BASE_FEE_MULTIPLIER); + let prio = from_gwei(estimate.max_priority_fee * PRIO_FEE_MULTIPLIER); Ok((max, prio)) } }