From 97fb0a7d40ca64de4107cb66b2dcb2085d181c58 Mon Sep 17 00:00:00 2001 From: Ivan Schasny Date: Tue, 20 Aug 2024 16:57:37 +0100 Subject: [PATCH] review comments --- .../src/base_token_ratio_persister.rs | 78 +++++++++---------- .../base_token/base_token_ratio_persister.rs | 46 +++++------ 2 files changed, 63 insertions(+), 61 deletions(-) diff --git a/core/node/base_token_adjuster/src/base_token_ratio_persister.rs b/core/node/base_token_adjuster/src/base_token_ratio_persister.rs index 1e31cabc867..609d44c8a8e 100644 --- a/core/node/base_token_adjuster/src/base_token_ratio_persister.rs +++ b/core/node/base_token_adjuster/src/base_token_ratio_persister.rs @@ -83,51 +83,51 @@ impl BaseTokenRatioPersister { let new_ratio = self.retry_fetch_ratio().await?; self.persist_ratio(new_ratio).await?; - if let Some(l1_params) = &self.l1_params { - let max_attempts = self.config.l1_tx_sending_max_attempts; - let sleep_duration = self.config.l1_tx_sending_sleep_duration(); - let mut result: anyhow::Result<()> = Ok(()); - let mut prev_base_fee_per_gas: Option = None; - let mut prev_priority_fee_per_gas: Option = None; + let Some(l1_params) = &self.l1_params else { + return Ok(()); + }; + + let max_attempts = self.config.l1_tx_sending_max_attempts; + let sleep_duration = self.config.l1_tx_sending_sleep_duration(); + let mut result: anyhow::Result<()> = Ok(()); + let mut prev_base_fee_per_gas: Option = None; + let mut prev_priority_fee_per_gas: Option = None; - for attempt in 0..max_attempts { - let (base_fee_per_gas, priority_fee_per_gas) = - self.get_eth_fees(&l1_params, prev_base_fee_per_gas, prev_priority_fee_per_gas); + for attempt in 0..max_attempts { + let (base_fee_per_gas, priority_fee_per_gas) = + self.get_eth_fees(&l1_params, prev_base_fee_per_gas, prev_priority_fee_per_gas); - result = self - .send_ratio_to_l1( - &l1_params, - new_ratio, - base_fee_per_gas, - priority_fee_per_gas, - ) - .await; - if let Some(err) = result.as_ref().err() { - tracing::info!( - "Failed to update base token multiplier on L1, attempt {}, base_fee_per_gas {}, priority_fee_per_gas {}: {}", - attempt + 1, + result = self + .send_ratio_to_l1( + &l1_params, + new_ratio, base_fee_per_gas, priority_fee_per_gas, - err - ); - tokio::time::sleep(sleep_duration).await; - prev_base_fee_per_gas = Some(base_fee_per_gas); - prev_priority_fee_per_gas = Some(priority_fee_per_gas); - } else { - tracing::info!( - "Updated base token multiplier on L1: numerator {}, denominator {}, base_fee_per_gas {}, priority_fee_per_gas {}", - new_ratio.numerator.get(), - new_ratio.denominator.get(), - base_fee_per_gas, - priority_fee_per_gas - ); - return result; - } + ) + .await; + if let Some(err) = result.as_ref().err() { + tracing::info!( + "Failed to update base token multiplier on L1, attempt {}, base_fee_per_gas {}, priority_fee_per_gas {}: {}", + attempt + 1, + base_fee_per_gas, + priority_fee_per_gas, + err + ); + tokio::time::sleep(sleep_duration).await; + prev_base_fee_per_gas = Some(base_fee_per_gas); + prev_priority_fee_per_gas = Some(priority_fee_per_gas); + } else { + tracing::info!( + "Updated base token multiplier on L1: numerator {}, denominator {}, base_fee_per_gas {}, priority_fee_per_gas {}", + new_ratio.numerator.get(), + new_ratio.denominator.get(), + base_fee_per_gas, + priority_fee_per_gas + ); + return result; } - result - } else { - Ok(()) } + result } fn get_eth_fees( diff --git a/core/node/node_framework/src/implementations/layers/base_token/base_token_ratio_persister.rs b/core/node/node_framework/src/implementations/layers/base_token/base_token_ratio_persister.rs index e710a5368d9..3632613379f 100644 --- a/core/node/node_framework/src/implementations/layers/base_token/base_token_ratio_persister.rs +++ b/core/node/node_framework/src/implementations/layers/base_token/base_token_ratio_persister.rs @@ -83,29 +83,31 @@ impl WiringLayer for BaseTokenRatioPersisterLayer { .base_token_addr .expect("base token address is not set"); - let mut l1_params: Option = None; - if let Some(token_multiplier_setter) = self.wallets_config.token_multiplier_setter { - let tms_private_key = token_multiplier_setter.wallet.private_key(); - let tms_address = token_multiplier_setter.wallet.address(); - let EthInterfaceResource(query_client) = input.eth_client; + let l1_params = + self.wallets_config + .token_multiplier_setter + .map(|token_multiplier_setter| { + let tms_private_key = token_multiplier_setter.wallet.private_key(); + let tms_address = token_multiplier_setter.wallet.address(); + let EthInterfaceResource(query_client) = input.eth_client; - let signing_client = PKSigningClient::new_raw( - tms_private_key.clone(), - self.contracts_config.diamond_proxy_addr, - self.config.default_priority_fee_per_gas, - #[allow(clippy::useless_conversion)] - self.l1_chain_id.into(), - query_client.clone().for_component("base_token_adjuster"), - ); - l1_params = Some(BaseTokenRatioPersisterL1Params { - eth_client: Box::new(signing_client), - gas_adjuster: input.tx_params.0, - token_multiplier_setter_account_address: tms_address, - chain_admin_contract: chain_admin_contract(), - diamond_proxy_contract_address: self.contracts_config.diamond_proxy_addr, - chain_admin_contract_address: self.contracts_config.chain_admin_addr, - }); - } + let signing_client = PKSigningClient::new_raw( + tms_private_key.clone(), + self.contracts_config.diamond_proxy_addr, + self.config.default_priority_fee_per_gas, + #[allow(clippy::useless_conversion)] + self.l1_chain_id.into(), + query_client.clone().for_component("base_token_adjuster"), + ); + BaseTokenRatioPersisterL1Params { + eth_client: Box::new(signing_client), + gas_adjuster: input.tx_params.0, + token_multiplier_setter_account_address: tms_address, + chain_admin_contract: chain_admin_contract(), + diamond_proxy_contract_address: self.contracts_config.diamond_proxy_addr, + chain_admin_contract_address: self.contracts_config.chain_admin_addr, + } + }); let persister = BaseTokenRatioPersister::new( master_pool,