From 7a46af1605d89ac551f0e2213b7eef8ff1abd744 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Wed, 5 Feb 2025 10:00:13 +0100 Subject: [PATCH 01/24] Fixes --- .../assets/asset-hub-westend/src/lib.rs | 29 +++++---- substrate/bin/node/runtime/src/lib.rs | 24 +++++--- .../frame/revive/rpc/revive_chain.metadata | Bin 671115 -> 671153 bytes substrate/frame/revive/rpc/src/client.rs | 9 ++- substrate/frame/revive/rpc/src/lib.rs | 6 +- substrate/frame/revive/src/evm/gas_encoder.rs | 51 ++++++++++++--- substrate/frame/revive/src/evm/runtime.rs | 58 +++++++++--------- substrate/frame/revive/src/lib.rs | 47 ++++++++------ 8 files changed, 142 insertions(+), 82 deletions(-) diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs index ce2ee8f566e04..50c0b82d54794 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -40,7 +40,7 @@ use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ClaimQueueOffset, CoreSelector, ParaId}; use frame_support::{ construct_runtime, derive_impl, - dispatch::DispatchClass, + dispatch::{DispatchClass, DispatchInfo}, genesis_builder_helper::{build_state, get_preset}, ord_parameter_types, parameter_types, traits::{ @@ -71,7 +71,9 @@ use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H160, U256}; use sp_runtime::{ generic, impl_opaque_keys, - traits::{AccountIdConversion, BlakeTwo256, Block as BlockT, Saturating, Verify}, + traits::{ + AccountIdConversion, BlakeTwo256, Block as BlockT, Saturating, TransactionExtension, Verify, + }, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, Perbill, Permill, RuntimeDebug, }; @@ -129,7 +131,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: alloc::borrow::Cow::Borrowed("westmint"), impl_name: alloc::borrow::Cow::Borrowed("westmint"), authoring_version: 1, - spec_version: 1_017_006, + spec_version: 1_017_007, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 16, @@ -2216,6 +2218,10 @@ impl_runtime_apis! { Revive::evm_block_gas_limit() } + fn gas_price() -> U256 { + Revive::evm_gas_price() + } + fn nonce(address: H160) -> Nonce { let account = ::AddressMapper::to_account_id(&address); System::account_nonce(account) @@ -2224,18 +2230,19 @@ impl_runtime_apis! { fn eth_transact(tx: pallet_revive::evm::GenericTransaction) -> Result, pallet_revive::EthTransactError> { let blockweights: BlockWeights = ::BlockWeights::get(); - - let encoded_size = |pallet_call| { + let tx_fee = |pallet_call, mut dispatch_info: DispatchInfo| { let call = RuntimeCall::Revive(pallet_call); + dispatch_info.extension_weight = EthExtraImpl::get_eth_extension(0, 0u32.into()).weight(&call); let uxt: UncheckedExtrinsic = sp_runtime::generic::UncheckedExtrinsic::new_bare(call).into(); - uxt.encoded_size() as u32 + + pallet_transaction_payment::Pallet::::compute_fee( + uxt.encoded_size() as u32, + &dispatch_info, + 0u32.into(), + ) }; - Revive::bare_eth_transact( - tx, - blockweights.max_block, - encoded_size, - ) + Revive::bare_eth_transact(tx, blockweights.max_block, tx_fee) } fn call( diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 6b9080c773a04..905b8735c5df9 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -41,7 +41,7 @@ use frame_election_provider_support::{ }; use frame_support::{ derive_impl, - dispatch::DispatchClass, + dispatch::{DispatchClass, DispatchInfo}, dynamic_params::{dynamic_pallet_params, dynamic_params}, genesis_builder_helper::{build_state, get_preset}, instances::{Instance1, Instance2}, @@ -89,6 +89,7 @@ use pallet_nomination_pools::PoolId; use pallet_revive::{evm::runtime::EthExtra, AddressMapper}; use pallet_session::historical as pallet_session_historical; use sp_core::U256; +use sp_runtime::traits::TransactionExtension; // Can't use `FungibleAdapter` here until Treasury pallet migrates to fungibles // use pallet_broker::TaskId; @@ -3313,6 +3314,10 @@ impl_runtime_apis! { Revive::evm_block_gas_limit() } + fn gas_price() -> U256 { + Revive::evm_gas_price() + } + fn nonce(address: H160) -> Nonce { let account = ::AddressMapper::to_account_id(&address); System::account_nonce(account) @@ -3321,18 +3326,19 @@ impl_runtime_apis! { fn eth_transact(tx: pallet_revive::evm::GenericTransaction) -> Result, pallet_revive::EthTransactError> { let blockweights: BlockWeights = ::BlockWeights::get(); - - let encoded_size = |pallet_call| { + let tx_fee = |pallet_call, mut dispatch_info: DispatchInfo| { let call = RuntimeCall::Revive(pallet_call); + dispatch_info.extension_weight = EthExtraImpl::get_eth_extension(0, 0u32.into()).weight(&call); let uxt: UncheckedExtrinsic = sp_runtime::generic::UncheckedExtrinsic::new_bare(call).into(); - uxt.encoded_size() as u32 + + pallet_transaction_payment::Pallet::::compute_fee( + uxt.encoded_size() as u32, + &dispatch_info, + 0u32.into(), + ) }; - Revive::bare_eth_transact( - tx, - blockweights.max_block, - encoded_size, - ) + Revive::bare_eth_transact(tx, blockweights.max_block, tx_fee) } fn call( diff --git a/substrate/frame/revive/rpc/revive_chain.metadata b/substrate/frame/revive/rpc/revive_chain.metadata index ff365892a265e1fd9b59f6811ea1c59642b65d91..29d91486afe004960ba4a1eee5d22c5ef3297876 100644 GIT binary patch delta 80 zcmeDFt+Da9Mnel@3sVbo3rh=Y3tJ0&3r7p*7Ord&MwRI~B3#o{RnilS;|q#1lT#UF f1z2Jff>KLLi}H#UN-|OvfKm!zsqKuSTwNLfLc1CJ delta 42 ycmdn^Tci88Mnel@3sVbo3rh=Y3tJ0&3r7p*7Ord&Muq7)B3#q9Ylw1nY5)LBVhxx8 diff --git a/substrate/frame/revive/rpc/src/client.rs b/substrate/frame/revive/rpc/src/client.rs index 47e439f068513..7f45a27a05a35 100644 --- a/substrate/frame/revive/rpc/src/client.rs +++ b/substrate/frame/revive/rpc/src/client.rs @@ -641,6 +641,13 @@ impl Client { self.block_provider.block_by_number(block_number).await } + pub async fn gas_price(&self, at: &BlockNumberOrTagOrHash) -> Result { + let runtime_api = self.runtime_api(at).await?; + let payload = subxt_client::apis().revive_api().gas_price(); + let gas_price = runtime_api.call(payload).await?; + Ok(*gas_price) + } + /// Get the EVM block for the given hash. pub async fn evm_block( &self, @@ -683,7 +690,7 @@ impl Client { number: header.number.into(), timestamp: timestamp.into(), difficulty: Some(0u32.into()), - base_fee_per_gas: Some(crate::GAS_PRICE.into()), + base_fee_per_gas: self.gas_price(&block.hash().into()).await.ok(), gas_limit, gas_used, receipts_root: extrinsics_root, diff --git a/substrate/frame/revive/rpc/src/lib.rs b/substrate/frame/revive/rpc/src/lib.rs index fcf93fa6c0d2e..f2567db8a330d 100644 --- a/substrate/frame/revive/rpc/src/lib.rs +++ b/substrate/frame/revive/rpc/src/lib.rs @@ -17,7 +17,6 @@ //! The [`EthRpcServer`] RPC server implementation #![cfg_attr(docsrs, feature(doc_cfg))] -use crate::runtime::GAS_PRICE; use client::ClientError; use jsonrpsee::{ core::{async_trait, RpcResult}, @@ -229,12 +228,13 @@ impl EthRpcServer for EthRpcServerImpl { } async fn gas_price(&self) -> RpcResult { - Ok(U256::from(GAS_PRICE)) + Ok(self.client.gas_price(&BlockTag::Latest.into()).await?) } async fn max_priority_fee_per_gas(&self) -> RpcResult { // TODO: Provide better estimation - Ok(U256::from(Permill::from_percent(20).mul_ceil(GAS_PRICE))) + let gas_price = self.gas_price().await?; + Ok(Permill::from_percent(20).mul_ceil(gas_price)) } async fn get_code(&self, address: H160, block: BlockNumberOrTagOrHash) -> RpcResult { diff --git a/substrate/frame/revive/src/evm/gas_encoder.rs b/substrate/frame/revive/src/evm/gas_encoder.rs index 8853e77e958eb..4ea822f306962 100644 --- a/substrate/frame/revive/src/evm/gas_encoder.rs +++ b/substrate/frame/revive/src/evm/gas_encoder.rs @@ -91,7 +91,7 @@ where /// - `g...g`: Gas limit, encoded in the highest digits. /// /// # Note - /// - The deposit value is maxed by 2^99 + /// - The deposit value is maxed by 2^99 for u128 balance, and 2^63 for u64 balance. fn encode(gas_limit: U256, weight: Weight, deposit: Balance) -> U256 { let deposit: u128 = deposit.into(); let deposit_component = log2_round_up(deposit); @@ -105,8 +105,8 @@ where let components = U256::from(deposit_component + proof_size_component + ref_time_component); let raw_gas_mask = U256::from(SCALE).pow(3.into()); - let raw_gas_component = if gas_limit < raw_gas_mask.saturating_add(components) { - raw_gas_mask + let raw_gas_component = if gas_limit <= components { + U256::zero() } else { round_up(gas_limit, raw_gas_mask).saturating_mul(raw_gas_mask) }; @@ -122,12 +122,24 @@ where let proof_time = ((gas / SCALE) % SCALE).as_u32(); let ref_time = ((gas / SCALE.pow(2)) % SCALE).as_u32(); - let weight = Weight::from_parts( - if ref_time == 0 { 0 } else { 1u64.checked_shl(ref_time)? }, - if proof_time == 0 { 0 } else { 1u64.checked_shl(proof_time)? }, - ); - let deposit = - if deposit == 0 { Balance::zero() } else { Balance::one().checked_shl(deposit)? }; + let ref_weight = match ref_time { + 0 => 0, + 64 => u64::MAX, + _ => 1u64.checked_shl(ref_time)?, + }; + + let proof_weight = match proof_time { + 0 => 0, + 64 => u64::MAX, + _ => 1u64.checked_shl(proof_time)?, + }; + + let weight = Weight::from_parts(ref_weight, proof_weight); + + let deposit = match deposit { + 0 => Balance::zero(), + _ => Balance::one().checked_shl(deposit)?, + }; Some((weight, deposit)) } @@ -169,12 +181,31 @@ mod test { Default::default(), ); - assert_eq!(encoded_gas, U256::from(1_00_00_00)); + assert_eq!(encoded_gas, U256::from(0)); let (decoded_weight, decoded_deposit) = <() as GasEncoder>::decode(encoded_gas).unwrap(); assert_eq!(Weight::default(), decoded_weight); assert_eq!(0u64, decoded_deposit); + + let encoded_gas = + <() as GasEncoder>::encode(U256::from(1), Default::default(), Default::default()); + assert_eq!(encoded_gas, U256::from(1000000)); + } + + #[test] + fn test_encoding_max_values_work() { + let max_weight = Weight::from_parts(u64::MAX, u64::MAX); + let max_deposit = 1u64 << 63; + let encoded_gas = + <() as GasEncoder>::encode(Default::default(), max_weight, max_deposit); + + assert_eq!(encoded_gas, U256::from(646463)); + + let (decoded_weight, decoded_deposit) = + <() as GasEncoder>::decode(encoded_gas).unwrap(); + assert_eq!(max_weight, decoded_weight); + assert_eq!(max_deposit, decoded_deposit); } #[test] diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index 09bfbf380c61c..645cd407f4dae 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -39,7 +39,7 @@ use sp_runtime::{ TransactionExtension, }, transaction_validity::{InvalidTransaction, TransactionValidityError}, - OpaqueExtrinsic, RuntimeDebug, Saturating, + OpaqueExtrinsic, RuntimeDebug, }; type CallOf = ::RuntimeCall; @@ -55,7 +55,7 @@ type CallOf = ::RuntimeCall; /// - Not too high, ensuring the gas value is large enough (at least 7 digits) to encode the /// ref_time, proof_size, and deposit into the less significant (6 lower) digits of the gas value. /// - Not too low, enabling users to adjust the gas price to define a tip. -pub const GAS_PRICE: u32 = 1_000u32; +pub(crate) const GAS_PRICE: u64 = 1_000u64; /// Wraps [`generic::UncheckedExtrinsic`] to support checking unsigned /// [`crate::Call::eth_transact`] extrinsic. @@ -366,29 +366,16 @@ pub trait EthExtra { } }; + let mut info = call.get_dispatch_info(); + let function: CallOf = call.into(); let nonce = nonce.unwrap_or_default().try_into().map_err(|_| InvalidTransaction::Call)?; + let gas_price = gas_price.unwrap_or_default(); - // Fees calculated with the fixed `GAS_PRICE` - // When we dry-run the transaction, we set the gas to `fee / GAS_PRICE` - let eth_fee_no_tip = U256::from(GAS_PRICE) - .saturating_mul(gas) - .try_into() + let eth_fee = Pallet::::evm_gas_to_fee(gas, gas_price) .map_err(|_| InvalidTransaction::Call)?; - // Fees calculated from the gas and gas_price of the transaction. - let eth_fee = Pallet::::convert_evm_to_native( - U256::from(gas_price.unwrap_or_default()).saturating_mul(gas), - ConversionPrecision::RoundUp, - ) - .map_err(|err| { - log::debug!(target: LOG_TARGET, "Failed to compute eth_fee: {err:?}"); - InvalidTransaction::Call - })?; - - let info = call.get_dispatch_info(); - let function: CallOf = call.into(); - // Fees calculated from the extrinsic, without the tip. + info.extension_weight = Self::get_eth_extension(nonce, 0u32.into()).weight(&function); let actual_fee: BalanceOf = pallet_transaction_payment::Pallet::::compute_fee( encoded_len as u32, @@ -396,7 +383,7 @@ pub trait EthExtra { Default::default(), ) .into(); - log::debug!(target: LOG_TARGET, "try_into_checked_extrinsic: gas_price: {gas_price:?}, encoded_len: {encoded_len:?} actual_fee: {actual_fee:?} eth_fee: {eth_fee:?}"); + log::debug!(target: LOG_TARGET, "try_into_checked_extrinsic: actual_fee: {actual_fee:?} gas_price: {gas_price:?}, encoded_len: {encoded_len:?} eth_fee: {eth_fee:?}"); // The fees from the Ethereum transaction should be greater or equal to the actual fees paid // by the account. @@ -405,7 +392,11 @@ pub trait EthExtra { return Err(InvalidTransaction::Payment.into()) } - let tip = eth_fee.saturating_sub(eth_fee_no_tip); + let tip = + Pallet::::evm_gas_to_fee(gas, gas_price.saturating_sub(GAS_PRICE.into())) + .unwrap_or_default() + .min(actual_fee); + log::debug!(target: LOG_TARGET, "Created checked Ethereum transaction with nonce: {nonce:?} and tip: {tip:?}"); Ok(CheckedExtrinsic { format: ExtrinsicFormat::Signed(signer.into(), Self::get_eth_extension(nonce, tip)), @@ -481,12 +472,20 @@ mod test { } fn estimate_gas(&mut self) { - let dry_run = - crate::Pallet::::bare_eth_transact(self.tx.clone(), Weight::MAX, |call| { + let dry_run = crate::Pallet::::bare_eth_transact( + self.tx.clone(), + Weight::MAX, + |call, mut info| { let call = RuntimeCall::Contracts(call); + info.extension_weight = Extra::get_eth_extension(0, 0u32.into()).weight(&call); let uxt: Ex = sp_runtime::generic::UncheckedExtrinsic::new_bare(call).into(); - uxt.encoded_size() as u32 - }); + pallet_transaction_payment::Pallet::::compute_fee( + uxt.encoded_size() as u32, + &info, + Default::default(), + ) + }, + ); match dry_run { Ok(dry_run) => { @@ -693,9 +692,8 @@ mod test { log::debug!(target: LOG_TARGET, "Gas price: {:?}", tx.gas_price); })) .unwrap(); - - let expected_tip = - tx.gas_price.unwrap() * tx.gas.unwrap() - U256::from(GAS_PRICE) * tx.gas.unwrap(); - assert_eq!(U256::from(extra.1.tip()), expected_tip); + let diff = tx.gas_price.unwrap() - U256::from(GAS_PRICE); + let expected_tip = crate::Pallet::::evm_gas_to_fee(tx.gas.unwrap(), diff).unwrap(); + assert_eq!(extra.1.tip(), expected_tip); } } diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index c54b13c27e902..49019880423f1 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -52,7 +52,7 @@ use codec::{Codec, Decode, Encode}; use environmental::*; use frame_support::{ dispatch::{ - DispatchErrorWithPostInfo, DispatchResultWithPostInfo, GetDispatchInfo, Pays, + DispatchErrorWithPostInfo, DispatchInfo, DispatchResultWithPostInfo, GetDispatchInfo, Pays, PostDispatchInfo, RawOrigin, }, ensure, @@ -1111,12 +1111,12 @@ where /// /// - `tx`: The Ethereum transaction to simulate. /// - `gas_limit`: The gas limit enforced during contract execution. - /// - `utx_encoded_size`: A function that takes a call and returns the encoded size of the - /// unchecked extrinsic. + /// - `tx_fee`: A function that returns the fee for the given call and dispatch info. unchecked + /// extrinsic. pub fn bare_eth_transact( mut tx: GenericTransaction, gas_limit: Weight, - utx_encoded_size: impl Fn(Call) -> u32, + tx_fee: impl Fn(Call, DispatchInfo) -> BalanceOf, ) -> Result>, EthTransactError> where T: pallet_transaction_payment::Config, @@ -1128,7 +1128,7 @@ where T::Nonce: Into, T::Hash: frame_support::traits::IsType, { - log::debug!(target: LOG_TARGET, "bare_eth_transact: tx: {tx:?} gas_limit: {gas_limit:?}"); + log::trace!(target: LOG_TARGET, "bare_eth_transact: tx: {tx:?} gas_limit: {gas_limit:?}"); let from = tx.from.unwrap_or_default(); let origin = T::AddressMapper::to_account_id(&from); @@ -1298,19 +1298,12 @@ where let eth_dispatch_call = crate::Call::::eth_transact { payload: unsigned_tx.dummy_signed_payload() }; - - let encoded_len = utx_encoded_size(eth_dispatch_call); - let fee = pallet_transaction_payment::Pallet::::compute_fee( - encoded_len, - &dispatch_info, - 0u32.into(), - ) - .into(); - let eth_gas = Self::evm_fee_to_gas(fee); + let fee = tx_fee(eth_dispatch_call, dispatch_info); + let raw_gas = Self::evm_fee_to_gas(fee); let eth_gas = - T::EthGasEncoder::encode(eth_gas, result.gas_required, result.storage_deposit); + T::EthGasEncoder::encode(raw_gas, result.gas_required, result.storage_deposit); - log::trace!(target: LOG_TARGET, "bare_eth_call: encoded_len: {encoded_len:?} eth_gas: {eth_gas:?}"); + log::debug!(target: LOG_TARGET, "bare_eth_call: raw_gas: {raw_gas:?} eth_gas: {eth_gas:?}"); result.eth_gas = eth_gas; Ok(result) } @@ -1321,7 +1314,7 @@ where Self::convert_native_to_evm(T::Currency::reducible_balance(&account, Preserve, Polite)) } - /// Convert an EVM fee into a gas value, using the fixed `GAS_PRICE`. + /// Convert an substrate fee into a gas value, using the fixed `GAS_PRICE`. /// The gas is calculated as `fee / GAS_PRICE`, rounded up to the nearest integer. pub fn evm_fee_to_gas(fee: BalanceOf) -> U256 { let fee = Self::convert_native_to_evm(fee); @@ -1334,6 +1327,13 @@ where } } + /// Convert a gas value into a substrate fee + fn evm_gas_to_fee(gas: U256, gas_price: U256) -> Result, Error> { + let fee = gas.saturating_mul(gas_price); + Self::convert_evm_to_native(fee, ConversionPrecision::RoundUp) + } + + /// Get the block gas limit. pub fn evm_block_gas_limit() -> U256 { let max_block_weight = T::BlockWeights::get() .get(DispatchClass::Normal) @@ -1344,6 +1344,11 @@ where Self::evm_fee_to_gas(fee) } + /// Get the gas price. + pub fn evm_gas_price() -> U256 { + GAS_PRICE.into() + } + /// A generalized version of [`Self::upload_code`]. /// /// It is identical to [`Self::upload_code`] and only differs in the information it returns. @@ -1414,7 +1419,10 @@ where let (quotient, remainder) = value.div_mod(T::NativeToEthRatio::get().into()); match (precision, remainder.is_zero()) { - (ConversionPrecision::Exact, false) => Err(Error::::DecimalPrecisionLoss), + (ConversionPrecision::Exact, false) => { + log::error!(target: LOG_TARGET, "Precision loss converting EVM to native: {value:?}"); + Err(Error::::DecimalPrecisionLoss) + }, (_, true) => quotient.try_into().map_err(|_| Error::::BalanceConversionFailed), (_, false) => quotient .saturating_add(U256::one()) @@ -1454,6 +1462,9 @@ sp_api::decl_runtime_apis! { /// Returns the free balance of the given `[H160]` address, using EVM decimals. fn balance(address: H160) -> U256; + /// Returns the gas price. + fn gas_price() -> U256; + /// Returns the nonce of the given `[H160]` address. fn nonce(address: H160) -> Nonce; From b527fc7d5f1af75cf314c1e62311d1b7c59f45d2 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Wed, 5 Feb 2025 10:05:33 +0100 Subject: [PATCH 02/24] nit --- substrate/frame/revive/src/lib.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 49019880423f1..7c5a56dfb9aae 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1111,8 +1111,7 @@ where /// /// - `tx`: The Ethereum transaction to simulate. /// - `gas_limit`: The gas limit enforced during contract execution. - /// - `tx_fee`: A function that returns the fee for the given call and dispatch info. unchecked - /// extrinsic. + /// - `tx_fee`: A function that returns the fee for the given call and dispatch info. pub fn bare_eth_transact( mut tx: GenericTransaction, gas_limit: Weight, @@ -1303,7 +1302,7 @@ where let eth_gas = T::EthGasEncoder::encode(raw_gas, result.gas_required, result.storage_deposit); - log::debug!(target: LOG_TARGET, "bare_eth_call: raw_gas: {raw_gas:?} eth_gas: {eth_gas:?}"); + log::trace!(target: LOG_TARGET, "bare_eth_call: raw_gas: {raw_gas:?} eth_gas: {eth_gas:?}"); result.eth_gas = eth_gas; Ok(result) } @@ -1314,7 +1313,7 @@ where Self::convert_native_to_evm(T::Currency::reducible_balance(&account, Preserve, Polite)) } - /// Convert an substrate fee into a gas value, using the fixed `GAS_PRICE`. + /// Convert a substrate fee into a gas value, using the fixed `GAS_PRICE`. /// The gas is calculated as `fee / GAS_PRICE`, rounded up to the nearest integer. pub fn evm_fee_to_gas(fee: BalanceOf) -> U256 { let fee = Self::convert_native_to_evm(fee); From 8ed511316f296eff7b9cc4c2c4a4ec45d6a7708c Mon Sep 17 00:00:00 2001 From: pgherveou Date: Wed, 5 Feb 2025 10:06:08 +0100 Subject: [PATCH 03/24] rm log --- substrate/frame/revive/src/lib.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 7c5a56dfb9aae..14e84d753ceea 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1418,10 +1418,7 @@ where let (quotient, remainder) = value.div_mod(T::NativeToEthRatio::get().into()); match (precision, remainder.is_zero()) { - (ConversionPrecision::Exact, false) => { - log::error!(target: LOG_TARGET, "Precision loss converting EVM to native: {value:?}"); - Err(Error::::DecimalPrecisionLoss) - }, + (ConversionPrecision::Exact, false) => Err(Error::::DecimalPrecisionLoss), (_, true) => quotient.try_into().map_err(|_| Error::::BalanceConversionFailed), (_, false) => quotient .saturating_add(U256::one()) From e23b2707bf8446c0aea7e9460dadfcee3dfe8d2f Mon Sep 17 00:00:00 2001 From: pgherveou Date: Wed, 5 Feb 2025 10:11:32 +0100 Subject: [PATCH 04/24] fix --- substrate/frame/revive/src/evm/runtime.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index 645cd407f4dae..e593222239e5c 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -383,7 +383,7 @@ pub trait EthExtra { Default::default(), ) .into(); - log::debug!(target: LOG_TARGET, "try_into_checked_extrinsic: actual_fee: {actual_fee:?} gas_price: {gas_price:?}, encoded_len: {encoded_len:?} eth_fee: {eth_fee:?}"); + log::debug!(target: LOG_TARGET, "try_into_checked_extrinsic: gas_price: {gas_price:?}, encoded_len: {encoded_len:?} actual_fee: {actual_fee:?} eth_fee: {eth_fee:?}"); // The fees from the Ethereum transaction should be greater or equal to the actual fees paid // by the account. From 571aaaa9e7ee4822be9df854d123a996dbc0683a Mon Sep 17 00:00:00 2001 From: "cmd[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2025 09:22:45 +0000 Subject: [PATCH 05/24] Update from pgherveou running command 'prdoc --audience runtime_dev --bump minor' --- prdoc/pr_7463.prdoc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 prdoc/pr_7463.prdoc diff --git a/prdoc/pr_7463.prdoc b/prdoc/pr_7463.prdoc new file mode 100644 index 0000000000000..885fc24efa6b6 --- /dev/null +++ b/prdoc/pr_7463.prdoc @@ -0,0 +1,17 @@ +title: '[pallet-revive] tx fee fixes' +doc: +- audience: Runtime Dev + description: |- + Apply some fixes to properly estimate ethereum tx fees: + + - Set the `extension_weight` on the dispatch_info to properly calculate the fee with pallet_transaction_payment + - Expose the gas_price through Runtime API, just in case we decide to tweak the value in future updates, it should be read from the chain rather than be a shared constant exposed by the crate + - add a `evm_gas_to_fee` utility function to properly convert gas to substrate fee + - Fix some minor gas encoding for edge cases +crates: +- name: asset-hub-westend-runtime + bump: minor +- name: pallet-revive-eth-rpc + bump: minor +- name: pallet-revive + bump: minor From e692fdd4277d06c63aece09db040ae703a7dba67 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Wed, 5 Feb 2025 10:25:55 +0100 Subject: [PATCH 06/24] get rid of extra traits --- substrate/frame/revive/src/lib.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 14e84d753ceea..69d60c5d6a952 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -70,7 +70,6 @@ use frame_system::{ pallet_prelude::{BlockNumberFor, OriginFor}, Pallet as System, }; -use pallet_transaction_payment::OnChargeTransaction; use scale_info::TypeInfo; use sp_core::{H160, H256, U256}; use sp_runtime::{ @@ -92,7 +91,6 @@ pub use crate::wasm::SyscallDoc; type TrieId = BoundedVec>; type BalanceOf = <::Currency as Inspect<::AccountId>>::Balance; -type OnChargeTransactionBalanceOf = <::OnChargeTransaction as OnChargeTransaction>::Balance; type CodeVec = BoundedVec>; type ImmutableData = BoundedVec>; @@ -1118,12 +1116,10 @@ where tx_fee: impl Fn(Call, DispatchInfo) -> BalanceOf, ) -> Result>, EthTransactError> where - T: pallet_transaction_payment::Config, ::RuntimeCall: Dispatchable, ::RuntimeCall: From>, ::RuntimeCall: Encode, - OnChargeTransactionBalanceOf: Into>, T::Nonce: Into, T::Hash: frame_support::traits::IsType, { From 8f1e5e17b49b54f9c9176de493d7adca72365e97 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Wed, 5 Feb 2025 11:01:51 +0100 Subject: [PATCH 07/24] fix --- substrate/frame/revive/src/tests.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/substrate/frame/revive/src/tests.rs b/substrate/frame/revive/src/tests.rs index adbbb752be6e8..319b35d1916bd 100644 --- a/substrate/frame/revive/src/tests.rs +++ b/substrate/frame/revive/src/tests.rs @@ -4291,7 +4291,7 @@ fn skip_transfer_works() { ..Default::default() }, Weight::MAX, - |_| 0u32, + |_, _| 0u64, ), EthTransactError::Message(format!( "insufficient funds for gas * price + value: address {BOB_ADDR:?} have 0 (supplied gas 1)" @@ -4306,7 +4306,7 @@ fn skip_transfer_works() { ..Default::default() }, Weight::MAX, - |_| 0u32, + |_, _| 0u64, )); let Contract { addr, .. } = @@ -4325,7 +4325,7 @@ fn skip_transfer_works() { ..Default::default() }, Weight::MAX, - |_| 0u32, + |_, _| 0u64, ), EthTransactError::Message(format!( "insufficient funds for gas * price + value: address {BOB_ADDR:?} have 0 (supplied gas 1)" @@ -4342,7 +4342,7 @@ fn skip_transfer_works() { ..Default::default() }, Weight::MAX, - |_| 0u32 + |_, _| 0u64, ) .is_err(),); @@ -4350,7 +4350,7 @@ fn skip_transfer_works() { assert_ok!(Pallet::::bare_eth_transact( GenericTransaction { from: Some(BOB_ADDR), to: Some(addr), ..Default::default() }, Weight::MAX, - |_| 0u32, + |_, _| 0u64, )); // works when calling from a contract when no gas is specified. @@ -4362,7 +4362,7 @@ fn skip_transfer_works() { ..Default::default() }, Weight::MAX, - |_| 0u32, + |_, _| 0u64, )); }); } From 3eb3fec0377c0bf34342ae5a3dc53ba78a0f7957 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Wed, 5 Feb 2025 15:19:58 +0100 Subject: [PATCH 08/24] update example api --- .../frame/revive/rpc/examples/rust/deploy.rs | 36 +++--- .../rpc/examples/rust/rpc-playground.rs | 3 +- .../revive/rpc/examples/rust/transfer.rs | 17 ++- .../frame/revive/rpc/revive_chain.metadata | Bin 671153 -> 359062 bytes .../frame/revive/rpc/src/eth-rpc-tester.rs | 24 ++-- substrate/frame/revive/rpc/src/example.rs | 107 +++++++++--------- substrate/frame/revive/rpc/src/tests.rs | 92 ++++++++------- 7 files changed, 139 insertions(+), 140 deletions(-) diff --git a/substrate/frame/revive/rpc/examples/rust/deploy.rs b/substrate/frame/revive/rpc/examples/rust/deploy.rs index b74d7ea18d41f..7a559940eba7c 100644 --- a/substrate/frame/revive/rpc/examples/rust/deploy.rs +++ b/substrate/frame/revive/rpc/examples/rust/deploy.rs @@ -19,10 +19,8 @@ use pallet_revive::{ create1, evm::{Account, BlockTag, ReceiptInfo, U256}, }; -use pallet_revive_eth_rpc::{ - example::{wait_for_receipt, TransactionBuilder}, - EthRpcClient, -}; +use pallet_revive_eth_rpc::{example::TransactionBuilder, EthRpcClient}; +use std::sync::Arc; #[tokio::main] async fn main() -> anyhow::Result<()> { @@ -36,43 +34,45 @@ async fn main() -> anyhow::Result<()> { println!("Account:"); println!("- address: {:?}", account.address()); println!("- substrate: {}", account.substrate_account()); - let client = HttpClientBuilder::default().build("http://localhost:8545")?; + let client = Arc::new(HttpClientBuilder::default().build("http://localhost:8545")?); println!("\n\n=== Deploying contract ===\n\n"); let nonce = client.get_transaction_count(account.address(), BlockTag::Latest.into()).await?; - let hash = TransactionBuilder::default() + let tx = TransactionBuilder::new(&client) .value(5_000_000_000_000u128.into()) .input(input) - .send(&client) + .send() .await?; - println!("Deploy Tx hash: {hash:?}"); + println!("Deploy Tx hash: {:?}", tx.hash()); let ReceiptInfo { block_number, gas_used, contract_address, .. } = - wait_for_receipt(&client, hash).await?; + tx.wait_for_receipt().await?; let contract_address = contract_address.unwrap(); assert_eq!(contract_address, create1(&account.address(), nonce.try_into().unwrap())); println!("Receipt:"); - println!("- Block number: {block_number}"); - println!("- Gas used: {gas_used}"); + println!("- Block number: {block_number}"); + println!("- Gas estimated: {}", tx.gas()); + println!("- Gas used: {gas_used}"); println!("- Contract address: {contract_address:?}"); let balance = client.get_balance(contract_address, BlockTag::Latest.into()).await?; println!("- Contract balance: {balance:?}"); println!("\n\n=== Calling contract ===\n\n"); - let hash = TransactionBuilder::default() + let tx = TransactionBuilder::new(&client) .value(U256::from(1_000_000u32)) .to(contract_address) - .send(&client) + .send() .await?; - println!("Contract call tx hash: {hash:?}"); - let ReceiptInfo { block_number, gas_used, to, .. } = wait_for_receipt(&client, hash).await?; + println!("Contract call tx hash: {:?}", tx.hash()); + let ReceiptInfo { block_number, gas_used, to, .. } = tx.wait_for_receipt().await?; println!("Receipt:"); - println!("- Block number: {block_number}"); - println!("- Gas used: {gas_used}"); - println!("- To: {to:?}"); + println!("- Block number: {block_number}"); + println!("- Gas used: {gas_used}"); + println!("- Gas estimated: {}", tx.gas()); + println!("- To: {to:?}"); Ok(()) } diff --git a/substrate/frame/revive/rpc/examples/rust/rpc-playground.rs b/substrate/frame/revive/rpc/examples/rust/rpc-playground.rs index 64175ca60b5f4..ea8916b3b993d 100644 --- a/substrate/frame/revive/rpc/examples/rust/rpc-playground.rs +++ b/substrate/frame/revive/rpc/examples/rust/rpc-playground.rs @@ -17,13 +17,14 @@ use jsonrpsee::http_client::HttpClientBuilder; use pallet_revive::evm::{Account, BlockTag}; use pallet_revive_eth_rpc::EthRpcClient; +use std::sync::Arc; #[tokio::main] async fn main() -> anyhow::Result<()> { let account = Account::default(); println!("Account address: {:?}", account.address()); - let client = HttpClientBuilder::default().build("http://localhost:8545")?; + let client = Arc::new(HttpClientBuilder::default().build("http://localhost:8545")?); let block = client.get_block_by_number(BlockTag::Latest.into(), false).await?; println!("Latest block: {block:#?}"); diff --git a/substrate/frame/revive/rpc/examples/rust/transfer.rs b/substrate/frame/revive/rpc/examples/rust/transfer.rs index 1d67a2dba28f9..5f16716760f9a 100644 --- a/substrate/frame/revive/rpc/examples/rust/transfer.rs +++ b/substrate/frame/revive/rpc/examples/rust/transfer.rs @@ -16,14 +16,12 @@ // limitations under the License. use jsonrpsee::http_client::HttpClientBuilder; use pallet_revive::evm::{Account, BlockTag, ReceiptInfo}; -use pallet_revive_eth_rpc::{ - example::{wait_for_receipt, TransactionBuilder}, - EthRpcClient, -}; +use pallet_revive_eth_rpc::{example::TransactionBuilder, EthRpcClient}; +use std::sync::Arc; #[tokio::main] async fn main() -> anyhow::Result<()> { - let client = HttpClientBuilder::default().build("http://localhost:8545")?; + let client = Arc::new(HttpClientBuilder::default().build("http://localhost:8545")?); let alith = Account::default(); let alith_address = alith.address(); @@ -41,16 +39,15 @@ async fn main() -> anyhow::Result<()> { print_balance().await?; println!("\n\n=== Transferring ===\n\n"); - let hash = TransactionBuilder::default() + let tx = TransactionBuilder::new(&client) .signer(alith) .value(value) .to(ethan.address()) - .send(&client) + .send() .await?; - println!("Transaction hash: {hash:?}"); + println!("Transaction hash: {:?}", tx.hash()); - let ReceiptInfo { block_number, gas_used, status, .. } = - wait_for_receipt(&client, hash).await?; + let ReceiptInfo { block_number, gas_used, status, .. } = tx.wait_for_receipt().await?; println!("Receipt: "); println!("- Block number: {block_number}"); println!("- Gas used: {gas_used}"); diff --git a/substrate/frame/revive/rpc/revive_chain.metadata b/substrate/frame/revive/rpc/revive_chain.metadata index 29d91486afe004960ba4a1eee5d22c5ef3297876..89476924cf0079c20e9f4542ba4a21eba517f0d4 100644 GIT binary patch delta 105133 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 =5P7e3kPo@ z3(0LJ!w>v0?BgbWs@Micp@@;I5VZh>7>&$ja=h@yIHCn^H~BZZd+@=1^eMh+HM`wx z?1d+e0`^3b*(g0U|KD<38}1Oj+-Y{PJ59Ie_Q=J?T_zpAx5oX=-{gLHxMPJ}r+ zI5IvzDwwZVax6NL%H_#uh2m0!2C^(R+3uT$9EKq0oW+Dp6Jd+Jn6`&4|zkL8MO?hnNhlk{`H@IQOFdSGqA@)|@yOV)nsyL1rIA=o*=*Y5 zyn{JQTbu;SERMt?WgFt&$0mw7%rd7>aq!u2X_2vfG3L$M$zX0ky5O{bbUM=xPH^lx zHShAh7npgtX;4laWs4VIZNdY&#CqLfQY;eF73+(I045aV33BN?CyflJs>x6=z08n; z=dcr{t(MHD!ib5t01kDAn_4?kp*`4C1jZJkuGmxg8@L~sbV;5m$t5oAwZQ+5i*pL(t#(pA1qO8sW*6Z zjKr2HEnk$t(xs$uNokPWXWlxDr3t*I-;&c##vs$mO7X(=thtopZ>Zm7J|g7(?Z~u* zYnoC-%czVFcreZDs58B+O3WKix$7UQYdiN9v&xaTvIMT1{a_v9>>65!%!D{OI=@C7%%@MUdDYae>{5X$$_XZK3>?P@*`!w>Y2nPz*G%sm!FH-#SL_N? zkZbGwPyTVurA)sM`U^+4okJmZ$p@;AX8zLGn;q5!2dFs6RSrFGzhU~0l){3D;?M|y zuZZ;S?^G6UiVdGi>*`Z zxxu%d>nZ?p>UCXz+UqLbcsI-Hu9xe2-UeFNbz!yT5r6b)soqIhunkPYHqdyTykZ~JMs#u|K1azY z#7&2Uz%sX6My*R*8Q5->Fgk-xsV;gl>VVAs>7;rCT!i(Ac{Z{=Vf+XYVyEg+os2{A z`6NN0;@AUV>m)*m3J18ZBnZ_1ih3nKaajov>*%ts`H9QusJ|L;Pz##Qje`USFSRVp zmPSewQVNpwebBl|$A$^mAyXX*X?(lUF&ICg@4zO5(-Ng6u0@pt=d#RxRVfa&vMJED zro`C>F6wq)=wW zhced)l-X{yun|HTd_AHN?5KJ=?tA*Ec)A4$8KKZYx7dyO0MhjieN1A1Yl?-^Es9mCR%9M zWRs8qTdF_fpj_+sHcSK;M2pAf1HEWXf9$^EdyLWZ+7CaVj>%oT(LIqzhM z(8U)c!~;cRU>2DZxzjk!j+8=wm%;>s)~Dm8$QEe6G;nP>8FS=3#!wuHYUx02L{t-y z?}RlL1Oy_UNdJ=OrNCZ}GBLsgf~OEtBK>5D$U+-3lob6_Y7eH7FESUsn9Zkd1?R@pC%4R24d3nDT`Jc;U?lCxgcsY3{szE zSSI_H7$_1J^q@RjBsQh80+s@@bWj}nY(;-KfF5qnoOFU9c~_o#_Di59ikQfQKx$JH z72^Z2q= z4mPxpUZEjN5m4$GW<3g(rWh07x!c0v4xChogir7{!uf|6wA)N|yJ;N3d&xA~RG3L` z`L@tl%o(X1x^FxhAUmvaoc$!>tJ_*+fQ9T4nur>p#}G8-65Buyajhmkn(|>|iRUkJ zcRs$X3CEcwZ$(RbURY+tCYDbEq^TVI!6mOU{HO<95K3xNflNW4fC?`%PCY>H>Xygp zyfNmjgFRw6g4n2m(?uDi>n$Hvk1WxuCkd9HqG9S~(WP@Vuq);aBo1=X#hIv@LOCHg z6*F~CpPMQI`tC5({in}O0kQX(>Hm+J>C@GiX*&@k#6aW`S4ln&;rd5b0g0k{kmq;E zWOq&J;OR0hOH8&^%3L^fOiT6;hxwNS(*NPaw7YUQBH4D*5v3vPxjnL6BxtrE3fiLY zJC+);$W*4sM!^W}AsysB8OuHnbxg_26!Rg%E|L(~M3~|1lr1RD7?N8lo>ql?s}aI+ z3FDDNr#AyiB99{NcOn#?LhuVDAK^zhe5t7(IHcgXptC58?jUt$M&vSE@D5XQA7F}T!X7H^w_ij%$G!_B*3)qByVO{P!UZyjblfIg0E0@P`W<|C zD+%ApIj(wxNZLM<8eCHH_F%X%WfCk`j(Mk1LJ{IN@wpufp#_t{x`< zWaJw5sa!*#`ymPWt5~?{2zl%PzkGbc7TB%_&`#^FzlgaIgDgq3>J%XfO%?SxO)0L> z6R`=te5rmnUa=sEP(t#IRK3Jm*BdpYAyJ$X(%T7s(wS8WMFkHr6EQ-9y&8#BcF18Q zbR$%iAwe;ALPAm;sR>Und}Qi*JU9%iVwpEJ{_0{s1TBnur-mR{2?6eO zKz1de(NaJL4O=IjfG&G*5c0o&8NXn8dVnaytV2N%^-!7($N*pvyHT4@YDj)f@64d& zBnL_qw8EmaM1#_z$63}dsvv^)fuLasK6?{g3Q%Tgh^nO_z9R)Oq1RQYU2jW6l%rS6 z^PYl8B z?J+W9$qPbM6w;>reuQ#Kl^qn~0E~2j7nJ}=yWA@;YPmQ5ZRm{mk@Qd3VT^>NA&qvl zCn1+XLdvD`$gF$Ml8Vz06RCgSmel_p%Ad2C^0$Y0d;m?QtS#+Nn}qv8-j@D?C?yF( zwh-ngfwLqUk#%^cn1hUww`137&aI4%j`jh)Lzew^Ikw~X0WHe1m%Upaq5$b~wBg*( z+n3_kITh_%BI)X#oGQFy+T~9DZRouB=oIKQ**M zW@p~|3-gdY=O?8B2N_}!jw4?K*R=UcyS$+K2FUWeMwPeuo$b;WFC|K=9R@$dspsqo z8&x7js5^}N`Mr|BS<0MViqIJ^c^cbA zbrnjt&@+&gZGz56he|1Ux+R%tv5|7KDFj56xgQ^atSuD<6vBZmgK$Q8_hEURhAABI z!iJN;k`7AjW2G|JRyuiAx1@54VaCEiiH6<;Z%E=aT^yczkUIC>Yp zkFt@y6Bi_@Yvh0YbF@p?tmmeBl-}dgGC5_7bd8>=M~yE7s>7NrBJ+b!C{FKNJGmA z7iY}FC8t7`awzsHS%7fHsd@bo+vm7aX^_e`AV`VN=ucbG6-xj_7FCR z^h`n0>dDMeUKJ9#@lSZhKp_!Gh8OdxMC>T-CZ%;rHP}9Zq$b^gaPgpG5)AZmbg>~3 z=|`fXHnW2oNC(&)JPNSgsOz7d1>>jZln)DjP7zFnr~K{haaZ0PTJ325d8tlR$K%2+ zfT7a@04{3Ix}=SweDIxpqD)R4ML{&wBu7vjLLx=dt(|FI+;;9zGSn$;;wX9!IXPd7 z$e=D>4CB}Y_$P-|v=E(yMgf_UmyD9+gVQ(n=*UqWINC!^Q4LVuhew>HHHy<4ah$`n zaO`C>RHm%pg{10+;mMN`seDnzfB91*rC_eOIHK4KmRX{iUVs_6gi5{%gjMQQm?Eg4 zE$~ydWW*E*4lz{q)5sQ-q!6^CI9NcEQU*cIXUamjtldCpYz7Jl`;iLb6d0%a2(FW$ z>k!C}NmTZsjOXjC!u-jb`kG=bBUzm^yb zb`C^ewaDdC&S?aLRhz^C5df&h->#5jBUYkfA{Aj_W9sR#ICmhK2=*-GCXh~zW*)A4 z^5W@9Wh6HUKVL~UQc_VsEOXRQ%H^^$vCIO|kO91(MzcgTl_cs-h4dalGOWJhcx+FV zRUcL{*8vcD!DwO&DjlG@NcRKuOp>K1)#-&T6X~i+bR&F!WgIub-N_)V4n9vCoCkl& zLyInuiA8nUa;ROGok8iMv0cTvJ-RR>;@c2?Ez3o&=i|jWWpE%{grqonFOq&aCb17M ziSi^m2m^4V_|Z{Ek>4>y3J+3Il{}RRQT`5aR04G=dPBdZUy=}@@%V~Sig#pDY^p30 z=V(TcB4(8}aUFs)JX`ds+$^W-ToDFJ3b&NgSj3UChnJ0O41qlqfdKDo3g;|{^Bgo- zDVkh3_NAd;+;r^iFftY}P@YztU3iWfs{I)x~Kb4YDK?sFCBjU`Kx*rP{A>pWJ;JjX=P z`!s^9kewpJA$~@2_7s6e-H5b>Tv42`BnGVln}n7wR1nmQ1y)-Va7@E!Rm6#SF*v z{-Gc>)aw`Z7yi%iyj=;9RqAIl9*83Bu%Dd#4r@!)YX22s6{VylQRIhoy{HvX_=LI# z_b=X)NfW4)m_u+QkVBpwMOYnILB+_|%Fh8?rlG!jQEAn38I)LtS0T7)Py5o68K^&% z%kVbTG!X}blL;%uU9cD0&cs6k64RKb*(Fg)Y&wNsvGt^A1Z840wI6#_kztR-dMH`Q ziW*&t7f9bUNs;~3l%Ua?LVV-=nF~^zB=Hkuh5#qVHH}&})fsCBG610PuDUTr ztv@FvGaEY&`4kE>dO+61B8gk3IGSua%!eq$krWQ!?W=UESiWV2Du zWAMI{MgSsCu=8@B8*twgIeSPlWjBQRVQ~x%63P^1?xsOe2Hp*n^;ZnDqW5mJzx0@D zgFn@It;)vgp`|Y`z~CT9k_{h_g1>k|(P$jhUZqyUVI*JLC;_6SFO>*d`KZA8z$5d&UW zSBP~ED>YOM9rg-=NBN2(6MiejgPeB;8Umb$bUP(TICcSt#@1+0q&ikM#2Zc|rhzD} zw8+Slq*J{`%djyt;LKSOCOe8F#F9riZMUuAjmTN^` zJu-qxrigPs(3>qHW^+%54k<}Wbij$>bXwmGs{idqTnb7D?T2VV(T1S7mXC%&Dt&Y=D|p?V{8o;#PqjzG7$U!Ftx`dvJFe!QYw51{_|S z!D01uu&(Z=Y&fMuztjWEaD+OQS61b;*cl9U4)chpO-hiN>|xG_`$@7+Wplx`Jd;Ha zh_qBu3&CVJ!CoQIO=BV*Ccqk4hhG-)5a*UK->IsT5Hr}DN}~^)7VMKiDp!3u8&Hjv zu*ZiyzBYYLo)Uu`g+eP>=bjUwxrpr)NZ!C3NgS`y>TEnysKEYK5!Mcojp~$V)9fsE zUB6rtBvT91y`~W!#@`ZlJV^LP-I|lnR|25|^&8nv-HE0azSgTX9t4S__c;h~*{)j2 zI^`PEp(DVtdftg~2{M8Lc@x>{YpyqQRmh#qI{aE0lB9($bsx5=!UsSB1%&(@sE90f zxjCgfbQKK?8NzDPT>k`=DJAh}Z|c1qy*+BW*+-1Qln^3}qJ!J){RDQzrs< zi8HKb?YmJ3JSXdVtf6l(4xWP6wLtPcW)~`#sD(9x7|ob03OaCECtJ&Q9@G)div1xE zfv7H#X~$2e#hHX2j3p3Cr0E>iH&P0YR!y;US=%n875PzHK%cE5hyAI zFenpb8hC5QF3e_g$DZK4ZJ+!|%s%Q9|7#O)z1tm+iN24uffgK7Xx|hkIi`GLQUbdu z-B5}47qRGwxVdNps(5$lb)A31+F92=7*}K)WRu0&RaM6zD@&AGP;v^}NOVDPV%bKm z_f_!;)d1q>JqmcSAQO8b!4Cp8QLXF4slupMkTg}lgjt{^!&#WtOw@0+M2+gLTaL1* zq9WoJ+r*+h=~O(g*RpcFFSs2`gu=TM?!B{D{0k#cID@p?$Iab-6Q?0!w zlZYaz$oq;lyuG6Ak5FwKPq(>a5#8nv(rxYxvpXvq zS(1+P%~DaNa_z>ECMZ&Gd{1#!Q?v0swN#}>GfLFY^K=>%@D;g=ZvPubqo>>41$k5H zHhQy@LRmwt@eL&)lD+_PtY5FL%=pAnYDASj00t6C4!kbNFLYUt`o04drltnt{Bl&7 zni>p{;FqDo)YM>{jLBZ)90IabVZ6mF*Iw>9E$!vLFpmo2p-GruZ}G3P!%m^IRJ61N zM5&>uR5mpmcQOS(F24=^q@q==nfRwEH3vU3E2YGtLj)?cl8QE$FzHjNBGnhr(Yi=^ zmz8P=neCqCyh*W)cdmc{9Boc*4TNr&?k+_E@vo%PJpzkRMeT4F(K|}~8b>t~$<)+T znMO`e?eGoGr*V*OAE5v1w0y3mqN;@XUDGohzoPN>^o;6=wM0F`QD><_CaE( z^&yg;fdv0}PAeLV=ozmpP0x6(ww_Uy%5sM+3Vym!O~vr-I#0U@Aa-@d!uOieDFQDE zZNjOhPWWDwnnd8eT1tfPEu}vMUaPJ-AYn!n=z52$L!c+AH7reOK&e)Qj|a7esyhw} z!(9P|0bQ0W3@=E9;hqXnv9{i@QHN0mX0V9Pa9_AF3g@>t-5ID;f4ozwfI)Wa*BE?+ z$5R#_0Bt2%UeR*K9;nf*|0yU5PPvwVvWh`1;lXNB{gSnWQ#I#Et)pB^c(BIkPg7BN z_>>+P)CEVCNs~Q#3Kz`DQ@CKBrTY~w80mp|)KfQu9+=0Wr3iBA^R0L;n8!&?c_Pf7 z@Lpb$dQxtnE!R;>DvEs4(JCVq_^hd@l(%}i+KS%;qqP;`dT4j|zhRu==`6L?`6+ zrqcQIZsB7vhh3Qi`r!NfA^ssw$dw1`M<~KM%*tn7mcp z^?54U$qKbAC_jI55i9>UNql}L%$})eqly^qRE9DIbgWuIOumN}5uSZd)sUMvRKzZ6 z!<6659}Hcps?*k#l6_+c2*?2?wW@6VZ^*n)0`Yt1{rAlKB@Y~mj#5?4(+WQ-w~O=l z%=-nlr1&D(Ko&Fa)9v@n`!Fh2@w>if-aoA{qW8@E^04Uudw$QnkK!<=W8QzZT=v@* zlpmj8M1Fjptd1nYZf5&6;gl)-i^E%sf@kDKA; zI-ufLgYx4DVg!~R9^xBAKz_XUG@?U98!`_^MThv`7QrE5I3I|GoK}4M0LmSu$K!|* z6Hze2u6z_hmuhx0jP@#YNkQ(;FVCu4HAKWo|I(t|tA>c60y8{KCcA$L5h6A}o%r?? zLY8Yrhgs_ZzPD6hi2ogbl(}=vA7<`*PsWA#U#k@s;(JMjh4|m99u?vRg*Y-z z=xqj+`#U@C_YEg@TQ8yFU_{Ymvy941DgV&;{MU`s4qiz zj&mf<(W%MZGCWqqC!tt?45q|(=*IDXB3nugPDjt^V7^;8AEUr3!C))iMo|w@qXFR~ zVIO{NrW11QM6qB~4wei*bLx370&^+h4V+N*b{kq(<0}sv#n>pIDM*~Rh;)EH)Sn#e#MeVYbTju-c0~dH+;oKCNN}K_F+O~ImVE~B@(;h;|R}FxjZane%bf> zMO52_>VK-j3p5j?>U+7}$=H~0d66~KpF!eKAw^4Jn%|?Auo8OttuY<XO z`>uFWXVon;*K_y27wT6zpf#!(n>rp+mLveO(y|cx6P5`$BFY@J3nA~ZD4NnxXJ<%k zwN!Z*m9G?BTTzan-HuJhyiI}PS6C%SExvt%$RZW6p)*yd>@mI9u=1j!F3=U_6E?<> zMWw=i1(juInqQ;k6tz>SifU4yDLW7=OVcob~8xzUF~BF$+N z_PfUk}|?E~4_UGX%~&}J)4K`gB7EKdFeIY4Oyf+@aQ?a+cZ z>QWJ+7qo|}31}1r1-K16T@*EtbvTOEmICw2R)%{{!V1MnMKEcGb*6Gx6p)KHy+yh8}_ z6-gp$s7IEMIo%4mR4;k9hJd7zNiKkiZT3h-p8C8>m9i~Ok1!*-wgmf7#T8m=E3 zpAi)XW#O99sp9x3ad^~7+LcQsCvA#PCrN@2B<(aM!p>2Z!_f)Ubjaq`8N6+8>V%yf z!C~KsXinuvfebi?3B*>*hwQa*!%S%$qrQ$JvM2ZC-|?ojIg}HX3-kjJz>u6=&)d`s zsbnW_?Ax;KvReI^U%)QF$!rNpgyQ2ws7k|;%}|1O(H6x|LO%}IyH6#;&F)`*uI?OT zgW>+;=j!$uZ-m{wpRen?1o4S>6f4=VAT^kI5su4Wl_yz-o zHe^n)WN;7-GpNN`d7Zt5mdyGMMkD*VZfxuQbvGJ3;y!wR-6iz*mQUC1;$ipeiEuBC zG?WZKfWHe5Cd1Dgd>LIoZ{g|(>V7?BERVR(cHUvEj4V95ozH|C2Mr{=ZwAp*K7+xrwqcYC1)5AFssH&9f5Ls`e14s~rjf61 z>h#{Df)^%xA;g~%x7P-4_?k24Us~B>z82!I%4Ys%6F+}NgjtGRQI@>RSMyPK^-8|# zoHJPOZX7*GWjzjp^@*ZkCM%l!Mfbioesp8`Jzq!7to0z!0-6>QYfbm$3IJi@Y<~9H zs~PzwXHc%Ah@9IOO*Nr*@1m~}m|KRj>0|L^wt(9vv%~zP823isW#9AXBMDlP1o8MQ zVg95TXw19ld)Q*V!`TDb1pdd<2Lv@Rv5he~f^e+jrtjSgScgJ-HIJ}+%O(8yiVIom z2$%)(cTENi#jIymwlhm44&xk6ldX;L$0g+ddn;eHVk2uB%4JXB>Gcu*pu91Hx~|JE zW-WrFo?Fh-;g_5=iaPf^s-@--4RjPvMq4K_s%vpgjV(fX-Q>=5q~QtmS}x9Q4*?54dN= zfOr3?gReZh8(Gf8PY>8s;2m>%kia`Cz_3bP^bPaM`I+Ub`J?VxZTv>Q*S+~t-fBJ* z;cv<@0Cs1&|FXV*S)=cjrx}*Q?fHo@z<=c4G0B@i&d4hvxB3MO&;G=CnHz(K`(Ix- z)~ZL`@4s%WG}cAjH(ob3c|>9N8^(XHTja_1g(t;b zSop{97{9^kk(KGtTKC=;jWdjX<1^nkq6^=BvHG1$7M}P^V~-&p+k#OqbbjBM3I*EO z*l+L-qN9Ym(j3qvN?mv~xCQ5+LxX(8ee_Rw^Jo6rID#7Zg@1X?xL1C|oa!2(38WXD;3YpYe#9@{5C9xTSDrr9F9EkP;(qDE zPzQg+z3=kS8u$8{P=v-2|Gz?Q?xl8U#lmN2LR}$!`}OPP?KkqFEBI3ju|nuFb#L{; zjkBSTa{1uug)c@!b%y@($FWchUl!swg+8yISmUm9LJic@$;(6Mqp1NW^k;N${Vkz$ zeV0dX3H`2W=RDu#{#!%uR~`E=XRioNsmm?(`7F+DvNfoFBhJIV2JZd!&>i%o?hg2} z=J$4op7alat}T4M){ZKRW=DvH+J@=e*&%b-_C4txE z=ZV5Y3%wx@eJ*fH{t&j={n0OBm?W-!Gr%w~alXDbU=u(*%45p|TYb#jc}L*f%(Ei! zcRm8gUKS|we$L?MPk6tG`_=@$KOBmae+Znddj5bhX?1~fcU|C2(|dcxI$c&sb%?GX&ol~$0tN9UPiu`qj%|KjY-Tl36+%D!;teDk{@{3KpjVxDab8A5L~%RvTA z4TDAo)bLcm=rP3p-v-0t!A0hr4{j_;r?0{6CDIwC$Elg+jppp^;5RNckN7|ql)>ai zRm@aRD3e@Xl%>JK$7@dgk4#cp$zu|5Zii5n#pl{xJ- zZKG;Y*JEA^3YYJS9&`G~J*KQ?UWGBeCDG}zr9KL$#_~8d9vZ=^aoC73n&WDailiB# zd0dgiyf8ogpfw(Rqo7Zk;ZY{nqkeuaX;iZ(tEZJ+^iueQe;5AR~-YB9?A5cVUz#wwbfc zAwwV7v+cR@LdPJ+Zl!VU|8R{<{p_h0c^Vi0=4o8&i`2N(7pZaWR~nbohLa zTaLyh$I3{JOa81hF8PbpxYT>z;{4?;I8WnJZ+lvmLcG+thW*C7ht#-+jY*sO2Wecx zn*Jq?iPu!mCPl6~cCT;|?TVc(vH!ZNX>-@JiT zqcvNNNtqY>&7`+^hBI5Yo09^@ZHjG*Kb&pU&)&-9u?_#`v5op7*+zYlY*Vb*Ms+nR z+Z2z^HvGy+wi)qQvJF4}NNkfGF3UFg&lKBmmx^uFXJ#AzJQ~|582&o8QN87`jT}p{ zjr>`$jr>Kjje5^poWGK7)Z3%7&9L8c*k;(6AI3Jrn*JrW;pQIO$afXns4tRjhOLui zn_&+n+YEas*+%x2&o=tL%<;>Db1nTqM&A%Tpz8+&{!Y$3c6l&hItOUO+ppaP-*Inf zLT1UvGUdxLChF)A(SpLiZnv z`yUFPkEbs^6x=funx|1H>~EA?|?X2w&&y@q-(bK?8KFVdH> z-#3%S!O))MA7+T#zoQq3`))U9!-4qI+s!Y)Z`yx{xj;Xhx&IFHh-v77Oz(a~!s)}^ z2h2_#4bJ$oxkW!BuDu)aJtkK!}8Jqc(z00 z0Kj3L4IpjL+^X$P7I41mg$SrPlpO|6#{PV z7|012g}vZ~&6(-iemz@kPt*L&Z8Pr&VCk9AheV;WotCVPcgKdHGc8&-4T%!ao_z*j5 z^vBR_`V0N={GwN~YT>Kw-VA3h`(vodEIh>>oeqVy(@K?mSE-Wk=ctnJhQ$82L+8Qy zCw}>M=v)(?v>D>yGsbxFo4Vi`teD&p-LTj$Ez!I3mIrMjKkrk%D%Zsd9eF4vX z&!5w08VfD*D^AE%msl6W%C<6a1Hkj$#Jy|9#oBV7j8?3zvZRaPV7YZE@%|snttG}9 zOEgqiTglmQ%RFnU_(6qLVyss!->I-x=lwE$qXaqz$A;F*9Vd*i7UNIh9z%;;I>OxXKk}UUAA6FaUN-}t?i|ps%@%~UJaZLsxOyR zThqr4Su;?}8mTg*@g zR;#{?kT^k9@3LmC)yxfg%#f6Hou$_;Zt0K5SH=1+Tv6$6fT44pWxC!o+gzc`_5l9| zOr8H@+-Pa|M=TRFw42pHKdiAXA%h#ZJ=@r=9YO*Hme;*}aJT(UO@K9tLZpT=vB z7O-%dX{l~I*P1)|HtM~&I0kn@!qE2dScAp^OFN+Y{lvLez1Ld5%b(p?@!Gl8)Q{Z@ zYUe4yh-KsLUT;o#fD_o@e^Yw}vw6S+v({Q@TxW<+*IF0Pggx$^r69wWZ`v#A>rb@D zcNzLlWvPp8wQxZN=3A4DgQ^o+Xyakf^n9z7{<39w)qJbLIAmoWm~T~&DLu?H*{^9w z=tChsXh(CI;3>rf_{&Uyzsv+rWtreu9upk5#Pf@+Z<$Y9Qs>P)++dxp8_(o+dO~%I zzuYPQa;GPse5r7sw{9>`=Y4xO_nZEH76RQC-}x7-3HrhO2Sd}uIgcY!jqr8z<5oqX ztCzuv7e^s=u0X0$sfl7y4t?3}cEdo_xmIrQ4aM|88y63jhZ= zr2_xN$*#~;amMYTi}WgS=Vc*Re1DzgWad6=J%eD1z&<`Bv*Iypj@~ifwg-mowK7`} zB^>!y%jR{67RNf{^0W`G5}|7LHnKL&b@~F@$`;rdUMbfc7T!rTYbIwy|7&`T7gibYqqJ^1BzTS!34NdSMgE z{WbQU9~&i^>XX);#m0JWa{kzF>MlZ8sAG)eEN!EDFY<=v8m(BQH>}38$MtFz4qv^6 zm{gb9J6PrQx;XfTHNlA4;`eV@7mY#CkZN_q(ZdhU7MH(iP1|UXk{8g{FE5)ZQ-OV~ zzSd*g%Tj%mN`f3f+!^1N>h2v#Rju{-MEe4n=VS;M&`>t zTXeh)Za83zPrq$d%sXJ`Zz~l#_MtjV@GcC>|1s{hHT(m!RN#jPZ1K|D)|!%isF%Jx zNqNA@fktc@ns!iuxAh(Cyqbsergq5Ao!TMlIe%)0)VpuKV_ggtUevw|ip1Xy?^>&R z4(Fls$VhY^k@%rM#!*|tKLA^|*VLZMd-K@HH;>6T>5plL!`g9sPs2N<;`t)GNIYC< z_ZUy-JXl&}&o-X1MQ@Q^Gv}GSu1}2Y`h@KIgx|ro^vOJ=yhKQO*<0_I(A-1H%kouv zWHbe}m+ituJKK9aCTffIB~rzdwkC7Jam{Tlk|HR5tOtvMglJ9ka%tlo*|dYDD0knD zUv+JzlupQ`T7s;z!2!-AH?)=OlemKgcX)IlBV>b2ZKX=xoQ&WnADUV@($A4E!fypN z?bWB{C&djG)M8%`?l8V zx1Z)P|Ghs7V#_*^{04E=NTAtS^$M1t6oSb}twh z=~=se8k~~W>*A>UiA89OQ{z;TqnESnp>GhTGbl%}n@q29j(^xe;hOQTZu+f55+r4R zpd++Rl{)&P)D8Ml3DJ}yNHP-2A)b4WFQTR6E^rD<)16%T5_EtM$HPYuDDcqdNOS}p zHWNcX3!Y=N>LRu=G+tcvv*0+xam0?F1*<0F9i-~@;m#($gC^+c#guuq=h4Y$rHjyq z(V~sRkWv*ReJ(LFp)LW6!OE3V^GS||f8adil{gyyX$F3t=8PnFZ&f^sw}(@FdUTTa zC|;YHhl&b9g-;q47}!IFqKt|UfngC)Jc2Oj>UmH`;YiB(qh7XpZ~(cRaa-$q4z91}V}B z5tc97{5%+#Zx?t#}Zur@{+Pn22O(*vSb`T~i%X79#@6rEU3rT82SPN8gK zv9w$XxHRS3DF8I>nuZ?A?{4W;noN!m^kH1+*qeM+uAfe3ArXrJ=#SURv_JI7H)&~M z{ldXM;zsXAv6LRrml5Bs=f_BfOQ)dpfxlPcNJipnx^cAIZ+svi4^4p#kgl5KTg+7c z9KDf@?`Y#>e&%NY&=GHN^qZ7H!}nRXwd3a9WPSYx%K7JJbbk+C?uI2wNQtLA+B%T@ zo(E*Hx(ltY3wN8f?Lb((zbDqewV1Asg+IpYbTLHIRveGo9LF_aGf0zaBO5Rl&|Old zS8p9%#+Y;MNk#7-e&L_hMSZ0l^tm`By%Ll#S*k>9;j%W+mtBmU$@%4Z`-MGOKXN2rBdX7eC zi30q`*yV^>rtQ+-Wu|>THO7zab8pDQ#Sn@AF13e^s zV^0)63E4HqK1T#CyR!NSoRcJhC|MqYpky;Hv`yWsw2j3>NUXtAdC~%=+d)UfEW32_ z!+=c*mIeR>$$?gdov{=e?6&N)&N}Gm)vCdI)pH^V74eWGj#~CC1MOb5fMEO`Yugp+ zQQ9ZTxE%T19_Sr)^l<+K@Ty1Z z$7DB8DayUG!2Y<6X%^F}i{pPnhQ=|E4aV5>7DAeZ*O5WpNl+fo8|3L+@_jmI49QMU ztA4&U#%`JWOx~L}0lE_&bT?&zJ0XEPq29dPuqTMEh4!qvlg@{D7pj$aL1_qG{xO8A zfVjQHo)#H-0^wLdf7Dk3WK_i8v&4ZCJFM$;WWabgAY#+(8DsO#3bdMHb*Vjl?&#+P zcA5HDRG_6@ofJUs5WLLdn^Wx4GjdM|>@!7Zf<0|!{^5WV=wKLZ*e&|RG1s2hIQ(qD ziJ;z<4eQj`GY-5KD)@z)kp5VCEUsO`QvIX(sC2^;gNrNvOR5rpQC@sg5n~vo!lbUgzfPq zBlGj&P(^3;lRq#E|7mN_#f8&EZ<&3@xM3;y@S74K;d3w2MoYhcc~4*Q6p@)?pHWh$ z%-hsbc-yb0+bd65dww{6vRH>j+ViLJlP53Gn)40__zh3zH4INiidenYm^}&LH+(n0 zVKJb(Ae;F=$reke+ivNItp6$-OZ3U^(1hY)i^&Q9CXNK%zo+jHlf^?*>~UV+e~qo* zPcGugqI|kNZo!k9_R@!O%u2;E8xrvyP_y}*1M&AQnWg906NAPHBhyxHw;IMv$jqB# zcfx~hh}o5PJyO^+?UnX5dipd%a^Y&$A*EL#6%5>n5ZN2SIl4ARb1%L3xNc~RbR&Lj zil&cwd_&RioABTTeAYhy_C>Au{5lQk{r+6r#&6?UwT|EYm(ky+)?PJWXw9-6B!&57 zmj)GAN9+rXaRHHu*q4S7V$#g@;+B7KO2p*3_6lQCKy=NuKXJj7z)2J5x>Ey`!sma$ zu-Z4SA4_sa+jL^v&6|$S+x#058{8In-iV$JaH1WH+c6Ivg&&>YJOBXk-q$l@X z80@b&`*)wAmXGec@s`zBe)eMeeB1!{!tN!nHyh5MPfATxyoA3S7 zS4pYqJstV&7613>VS2v%;FAa2%YXM-`uxTBnm>L|-Oul&&u{*@5!o+6!9Dis1&tKT{-Ba{JV$-#aTR*e#GWz`9(H)0=amnw0 zPM>EvkNy4qja|>u=bIK?wCU0>{%kRQE*9Y$n@%@~l{NM&=_(8~Tr}##A4D7BV@kGn z55gs}F5XF=CS9w6q846`U@>e9T$1kn?m`*Cp;RP(tNIS|5WX_%T%4`t%gG|{@+4{p z;FNK{i@P*Ca9#%v{1ndeB9;laGt`I_yy-Z+yM=ym+Xr#BH962d+RhdZKZRGNTr1DxZ^_L zh8sz-7wK;3?Cj_K`HuDJ;dq550lXF_bXNrv+%1VXj>_`!=&kWM$|NALE2|`IhQn@0 zq64toGqgXf2Z2ISft8~;^;5A#eHodADr5u!T7;$khSRTRUnPbCexaFGB zlF(|vWR;kgM`3RPHd1uaEuCs+?D|K1>9%&5t^=t^OEX;nob1fE`E;!gr7*%9b)tp# z7#5%7IVqe%r^{hG+`+!ie)#r@G_V>(4=}V9LV(`^bS|k2+M=?JWi*Hj1I%z^eSO^t zR0Yr$>TUzotLR110!5ER2X1?sY-=tMfMOZ)m(Jd*7#YGiUJvhocO@hSP=`~{6kFQS z4}u`1Y=hYnttWdu+Il62GWz57^$NuL`W^A^?lyMJw{49NrRwXKtZr;-Rj0kVH|aV| zGlJ>VsG??N(>uDqT#WEx6O4dhff3+%dd<#1I!5T#2PL)UCan>##B~pmv#Aue>+yrQ^SJfMltmGFy0N5-) zT;ORi9?9`7NDoFU@zjr*%dd>0+(;@xwk@!bR%AoXz_c`dIA0~bv3QAqTNq~Unb3fO z5TJHBdCY-c=}kf|k>%s|L7Yjk#7G-JMUf<&!Tn6U@s3(g6j1Cm(%hIxL!J)!tC1wn zj;^`5-}VLfaw@YzD8$Gfag%R`M+D*_>=Ik#QsuDS#T_eSDV!bzbuS^>UYvFC=#-9u z{}oP=@{Zmr0S_<>NT8GK2@=z8&`ZVXzO-WY-Q?$pTKSTqL?) zvMnqTOq2Br4y1MKS{&<8265W}*)Qu;Na>9ubWBmGZ6U>de;ng`avH3{9f3TVB`Jvr zao-%gFbymEk6`uUw@=KcY|GCPAE}$kJ2fuk^e8fUfP^=9-h<7PgdbepP@wLYFw0><@ZG6i6zJjFMZSjA8OJH01PajrRq^eZ zlJtTD07e_4@+2F0hd{r{Sh_FOMb% z+P_(AjSWyx2M|Clpi*DGn@QP%wD;HZqvG*zMPvGJBij*p{9DmDT`Kk-+1Amv+Ss#g z)wXsDjOg0#z_nuAIkuZFev2T5N)7aRVHm$28B`(EMUz`BE0s_txqy~ukz|!3PZXo5 z4|HA_9gUJyD>7T^UvE{^|$ zJ}E7=Awo%xghUmsW}l{{GWQ7E@zkxfnq!chae3Ea&5V}|N)=UJ z!>;T*v9P@Zm7q3WD5XZm+ZdtI2r5Op>p*YOW_H@c$AQx$+<8xK<^m1FsRL0a%O27( z6Uhx&j~>=KBKo}n{aUjeVfro2eBz_RDE=*+kLDw;43^5}$m%1@8)>s4)`Ra5J}v3M zis%U2WLg&6jrxS+0nMyk1*bvJU=N5r(c4k&YFg&&OYGHpI=?`ap8wU%mYrITy&RxW z;+&>G4SfsmMLKrYFYOu&STVBiYmwUP#P zWpv#rNx{)p>8?<23{dQLBFLLO>P{fDN+FI#&1Mvk?4taQR7C80%9(FG6A%wQWy?VXIGN#(&@Wz8-it5X$_j$zEX^?*~NrrS`ibDdxYuZWfkmNuj)~${zgcoVwyZr*-vSFqD*?={VuoBZn!+#5@@OYspjddDXT`sE+7hH)=;xvLQC@xCy@qsFC;$Mz{Y{B`NnkIN1n%V;k}uQYmG; zbz^c6ruYvTEWQ13`F2EVeaW~IKkHfoeU~I;-{s21H851^d4MZaue74R2LJ;^{cd1E zlW>gY!3=xRV>gJQ!GS@r&`=uW0k2&O8ArapA*@`I}Q~K@?IS& z;emE|t_k%JRu?!0t~c^nk`%+HoEq2<&W0PF+~%I?m`JnVkm!~+ZFr(d9f>rOLf9}k zfE1>9$6|6C>AD$IijsLfy!?bfcJ0ShD+0+wcBHXUmLSd|#M^QTce?5~m$wS>^F7Ac zt=Xw76agN>4!84_3MnX(%XLbZQYe?S99RW?1e-eR$_5pu|+lRzs zcR1m6;Ug#-j6#O468LEC;ges)qJyQg6Ve)V_i{pV_8FGG8#RTaK<##%d_cNwa)6yg zLvEs{C*F|&CNTp-ITn{!!5d=pO!(|0I_k&$HeAw-!oeLwri;I@eYeKVw_J6gOFa4$ zXa0oRyjd2rY$|+G?54=pvwLt=wNlPJ>LP<8qWu7jLH43oXO(&epI~zE-%~~$1C+}+ zsYo-VXHz$B;{b;(QGx1IaWMs}3fJqdlC5&xpyjKUXZlzI3#?-b7eBtu3a1f6?NwZ- zA~2~nKm~Ho{_exOmw^bVT2U!X&Hr+AhkcZQEYEO)>xT_VUWxOdWyHedYwMxB=%MbpEehDftn}i6s6GkofC%Tg0hZ zMmQa*Tp}Z4bY?==?loP^fd5x`ElWtx3qmI=Xk%xnC9bs3NmB7_7-eJ()6pV8Ufzj} zYPWBq9HO`=Ekz}F-l0xxxCFXKli0I4f&p(*ZUN;UDA9>j9Bzh=RAiy-B+e<;#4*wY z_JF0#Ag?>pwaJ`B_y_(?SUpV4tY(voRcQzjZNBaAc*x8kQP*TpMHY?M0X%Sm^n%1;Nbm96C{IM+1#oXj(X@I2eu^V* zP(%*`BQB6lDh`fC$;TiCZc808_E&GNqA<7wl?F{WMI@`z z(bZd{Zq%DFx$p;5(FlT;kbqPxT)v-zehK6vY^(H4bc~%o>7F-#{<-rpcDx64yoQ~m z9)P6MCCU2f_U1v_AQHWC-+&9sy1<2+f$H!i_La*3GZ?31IU&}0^8hczrF>%7Obo%V z&aNuto|DiXQc*;&ce(U(XM`{!O5Kc#uGBwrpn-J8Auzy9%;TU2^HCne_qq7XMpIOm738pbcce~+PqST_M!Le_uJ$98 zI($N4!;wH$GLoelt!q!4)h?t{HU4ko|0WoY=8a8HdH>1Kk%2@!8|d#($P!&N!mlQSaDRngEuy0|^IL^0p;0O+?N6wfT^1$Fr74UM*$BbRhytNP zwlG2XLOca8MfX4~8SfoTbq_@}hy+@?Erb1x8B%V@c`gw_ySYk}pnFW1#eI6A*jp$3 z!X4@U-o8GyKVl)gzM6DGGMGK$F6rv+g+!+fomfCASmia<)z!F<1^C<=8@hm(1MZ8C zcvbHfT2_FM-{6mEN0~ z;~q~ek@JLhek};kg@8sAzCAg+z57I!%LU3rAiQz_1?b>&Hz_G;pyEinO2r_2sK9VU zg9XC^5R<__Y+#gF#MW_=M3RSkAF);?y^)Z)pzcYDxRKyELmH7pAL&og)-(h> zFBQ&z!f&9$#H7u$vX47oIx#RjvYlO|8p^Gm6$V_fA?;IeHx=_|zlLOV+T8|F7#vC= zZEwV`$j{qKiY;5br1;RT;Nu@VkctL(NP1Lyqg3X>zd$?`RK@~r!Su315mCO}&uJLQ z&pw!CEVz3SsV0hzxR=mgoaE#)66)xum(&U@_W+%{BgpZD-p6elNtYdu9zKZ_$)}4& zVQ3*=^&>>(LYO1 z80KB%Jv5io25Jf`S9*Av+;$fcXC_&94VI$#D3fh1xHkQAC=!)q|0r)^l*dU$E3m$a{s?8p(Vj26@I}%Ts4a9A zfutpBNqy2iS|B+Zoy2hYV2T}l?p35J)sW%<<%(ftxd^JjEkWyITjEd*Hb@ANkBiU- zXsR*3B}OiI1sTyauMKaM(mqpo^;-09Nt28Q9@xQ7Fb~RF0Ic^#FN3ZWtz1Y77Xb;3 zNvl8uzSfAeX zV81^ei5$oW=;}Z%l0WG$;k<{kDx?$kb5iE}?@&W<1#um9i2N-yh_omu8xyH^5`9Bp zm_Z~3)&RmnY?tt*dP`12@hU3Hz;@}wgRXaQq^COpHz1%T zGVF;E%9uR?97Vm`C^SJh4CDRc$kady>AG?aDff^Jf|0jB(XC6&4E~*9l?Y~VW;T%( zr4^$^44Vt<;OaJo$RcI>uSy`%S62O4hUf8LSQy9Jf+*}8Tuyzx?t0Iqv>>EW#<)k2WDtR_Xy3tJ62oHg#X(rmL^5(A zdQRteZ5rA}>i31es$brOWS=cyfB*6yU$vBJpAWg0;4B|ZpR69}rrAqD#6#;ti!9aS z-u}pi()+p=He)~e61bBx7+LUKqp`1W=WEgBo1p}#PB3d?D)zi%X_fD~qr%&wu_>qV zkj&GL$P?~rndvIQfTn+$ViuN|pkF{y)95KDmq@GmcqP2H#FoeF4ZUQVn701}ik z8|&B(1%Dlf zaBTh4Fy4wtIJ0Zp;;#{c!sIt2#VdlvSu1PvxU>MQ$ZUzTXHgLvOYSr!fcZT_8I_J4 zwtBOw)nAX-kBZjxUyoNk9@O8_^b^6na*3LbYjH|(fM&G&Z}d^F#0f8^8?w@nzAptE zhZ~k!S(nSdlO`=UI1(iY>?J$d`!;9JW_mrIs@h&NXATLUL0sZUmR-H1;bHC?60)eR z0yB+;g}gco`%YSQN*Y}!)G6Gq7w?g7AJDsc=t(Wl#p(Heq~9Xvrq1CFCGenixnGg_ z1a(A0?&7krN|)(B6{pBNyY#4jB=#+ECbaI)bQYe3i}qZoA+#N$e1$T}z0%h+l` zoEoSH_O>KVFAC{3hPZT|y)1AdR4!gCbY_?*LnwPWp~#st zc~VGUXcSg9%5s8>A?*;HzvR9Rm`CQyBIgo4IO8qo-kE#O06c+LLlwfcoHFB7NL*w& z|7z%#2-wb|kKvM~CL_G4neMI0?`zz`_2|q0U-3B6HpaO~+;2Ny3%N(%qrNve&Kr90 ztgF#btQ+I})LQiEw{`p=stTRQ0^_VXV%a2&S!#*1*E zDC8bMRX$B@I@`H6fRqIBdZ%3?7R+{T2`seciBs#GsVF)r#=0+K zcg{4I)7LLt>0Ezi3G4XKCJp1HvC6{UEiT^V%ol%N@03yn%0F*%ri$7PPS`w2wI`c5 zI2GnbtJM;_HaInS7PG`ZZ*czCw5pK4-f$Z!Pzu*L7+E0_3!m&+O`tx{klXI4FGtXllz}?MLnCTQ7_}^{TzTA0yzSTJ&P42S9Pg|Xz z;?o0`_}V9&3+NVv-+aP}EIf(g{OEY4mjy+(COL`YJrR9jNZ)4E{Ws1(gZY0=*Qbg{ zHanj&&RQ*++VS_GC4SQGRL?zR4L=yH=ilR1;w`Lc?DuHzuupqO6z#no*niX#AifLq z{h8M3&Y$$)?vQ@-e+vyBv*wFnhjXEG(l}1*QL2mAHy}#?i4JGp#JwSXw^8C%|I8A} zJsr+hjUkjkk2{xBN!72#o%8AMi*aW#@U(TF_}{KG<3pM08IPH63+a1#BFBTwz|2dc z!Ez>w2WC2bC|XPZBTl+nH6TV3uXZAjhneW4b-wufgHDyX&v?noJao`msR#Fk^xF&( ze9#$C?|kw>r@^pw@%V#I!Z=`vk3HlZM18gs4>{E|kFgIs%L6Z4b>e5gb1FfjuUf)< z#rcFW#S$H_II*S&3{5{}eZWy_ebfWic9}dt4ci|~d)V*tup5oym88A& zd-hvY+H%qN?N5vOFF@QJHpbbR6)!l3KIN{Ee#i*dDd~XBG%C{&UZh0XpMGFpDUP0W zVnG%N;$#2EdBQHWi?uJG99Jm*^h0}{zD8X7qEjZm{v&&VF;f@MzvzT-{jpt>sra>% z)b*y!=U;Lr>48c1g<{joP6Q}NdCPx%*_jQXzxA@yfZgexmz{I;@Vz1ZsDV5a?9g$U za?&?67m*@y?(dv08aACJFA-n8#wo|8b;qx9{uTAL_wI6TLiz0JpLBZ6gSaIxv*(k} z^MSx|gD;mmYoew<71Eyu#%k;*HFJ$w8oDkt-!2!Yp0~!Q7XsczOX!N>bqF3RL$<*# zuH$DdUh$YFySSR4Tq4heEVpZAi&f;sq$>nh*|p`|0#1zf_^Jl!>{<%(wt49cC{kH? zi<_I9$Pr-gXEsGBHz18dfWoMb7Wk?; zDNvEhoZJBIE)$lpgn&Er;?iUVkYLUR+apM$Y!DBgQ7}6lBbcHD*@#2in50<;FL&GK z!9;gQ+aRtAwrgP<^1<#l@{-jS(xc;*h|!#BqP>cxX?w`M6?p#2MVWR{S|I_ zIH=sxl_PC^_$J7fV8b*Nu`zh!jNft5JKU%mWpV(m3oD$C*k( zKM=r9aq>OMm6tQdCXW&&TOzesD7M*ijC1OP$di^|daNkliQMlX3Axge7|FRJJr6(< zUFF@~4enqw01whG{I6XcT#?PCr+`*0pNNL!D_lUAMg_vEqq68-``fqMIa8k&>jHQ<*x0sX^lC*t?#`>nF$<)mvtKfr zFOQH<3HJu2E|MoMn-3IShe-@eT=Cb}mA^)csSsRY8N8A~;`2icndndo<{4*8r{n2aA67xp8_$%W0Yt95w`FrOnO4oZEf6XELW?MY*y0Zrx z>=mb+dUKz>%NDnuauQ><*~OGxzt4Wa76orOuaq7{mFS&Ab~z(P%G8JL%$PS}YKXf} zJ0AZK!7lO2*n&@r4O0uIQziAGsRd`7J%%sFJy{ixgiYUm{OX9~Xl~xj)YIZo^&xx4KzL?lQFy#V75Ohy0y1CX=0M|MK4k ztMc0rT=aGXL8WuthW<_@lAwHq*5#(>xa@#aJx1$6O}xmFMG_JkP9_4IW$;&1MaD$% zRlDS?IpfOTIX6U#GUe0)slj3TP+Mr3DQG}0l*m3_7i^va178tt%r zSYE=jX$qdQ!@nha3cw?MGzQ-YOF@~N%ZGW$t;ymBY7@d1fKJAxmUrL)2H_%|MaHKH zF4+apfG7=hO9{Mg^m6Vv8o7p=@Ze~Xg}Z@}OI@y%uzTl;2x;t6K>WC1kA19*dSsRjr|T(USLPDbWgPPfqrpOu8yR_$J#bPdUbz=HQW zgH0|V91Q{i#}p;yRASZXFklRUNMu;Wu$jrw zO#YN;)0KM%g_XPFn_L$THbjHH4M25IH3opz7a)tZ-09_Piv)oV{+B1C$MC_P6VEuPOFNghK@s4_@%AC-&KKGjO<@K7K- zqENl!^Gcoipkdo7KBjh5pD*|qMG>HZ968|+5ZSLf@JSI$O`1^Q4eG6IM0?$Bp=5uR zPr;pMAyR`X5M+kGj|7l7G!FLt*VoG^TYdd;S5-Z&Am7$UUDd^na*yqvD%o z1(R@!TkVRZK1F88+QDRORI6IkZ8W4EmXYaWA$1ius#({$XiS;S=%KqiQt7paq_Z!S z&D%V;=s1Ili9QgV>6p#_YlMuniU`a&hyW^-B;r|gRE2K&NELK>SxX;s3DFlOB^lLW zor%(nXq8kiiYUG0I`CE>v8x{u5*Tn?8g2$B1ZJMTeSq8acqPhre!3C z^%sCUeHpr+9zi&tHCzQw&I%FPqbJfWp`PT#$%uFfLmpMJ2#jdA!Sv%PVpc#NSeivU zCv9OaNjmHkZ^u=)o;F3tGpHN~MZ*}i*`s$rG{>_DV;;b06h#HNXe7>xFS4GqAuqHC zuH=A-2}@z8%Ax?}bfT{kA#z-dF^uGKsuJMBl7d+ZrH}e0FiE!d-%s0 zC}Mp}cDsyv9k6B?Rh`f-W+EQw(KNVg%OL12TfG`$eqcv@8q``M>YQF^6?3`~UoR_| z=ahz&IwW2$E9m#WLiy>KQt-z5YA=GEBH*v^bsq|nw;@`~)ym8=$SHb46|i6N)ed4G zKHUYP2c-Z(ybVWN#Se=iAIx7e?!9?%*Sw+1zChYu|1vXD8D)`X<%O1~c0iq!5@ue3 zye;xgqmXnrC>W1%ObO5ZJ2DnJ#diX?+z3my1yxq$`ApR7pcF#yuoK>lXtJ<@G_j*( z`o#O8fs+tG+6900B)2rrS>xfP&kjcO6Gj?0pp5IEX$$3$u`JSj*$!Z{QA5gRpO3XDJm z!Imc3+erRF5+pfTNK_KM+2ULgIv}14C&_eo3~&0>mpdS?Z3s=6n0>?NV?xla=NHTz zv)(BOyDcXFi&(RuAe>ote!-9Qz((h$%;W_Hn*v6wlNq|OV4j}7utip2UPIYan3KIM zk!r)nL)=Ce572oN+#XFjUCha0pSV-NcP2xK99sQ&{%f58JCQC|r=kL~TE{`>x( z;|=b?{oe()5z$1fq@c_|rRsD^LG{?f_{0Rjn^{WyQz$q|{Gz1bJZdqvw4j{I3oj@w zxTNH;A19Nk1JR%4o@f;XWr%bN6IKWf?xJ_$7t>*>?9{6o|DE)5JM zC3NFvBTZ}O`s9nT1Y1{eicT?T3>VqCijsurBufXq`tcE6^TG*gfiXLlHAOs5QvREP$AD!vT2%>xfh zAwW=y%xln$$4gO)idYOv_SMX507uq?y$VyuOBZr$X$G=;Vp#QApfj&qRYDdM8Btai gu&s@6M^-f^#J#SK^JzDY9QwK@uAQr&g;3-F17dE0q5uE@ literal 671153 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

_*E#RqW%)1Rv)2?jpd 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�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

*`KS8W$sJb1rF3iy171#;zA$lI?^r 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 z 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 diff --git a/substrate/frame/revive/rpc/src/eth-rpc-tester.rs b/substrate/frame/revive/rpc/src/eth-rpc-tester.rs index 0ddad6874dfd5..7cea1a303e383 100644 --- a/substrate/frame/revive/rpc/src/eth-rpc-tester.rs +++ b/substrate/frame/revive/rpc/src/eth-rpc-tester.rs @@ -17,10 +17,8 @@ use clap::Parser; use jsonrpsee::http_client::HttpClientBuilder; use pallet_revive::evm::{Account, BlockTag, ReceiptInfo}; -use pallet_revive_eth_rpc::{ - example::{wait_for_receipt, TransactionBuilder}, - EthRpcClient, -}; +use pallet_revive_eth_rpc::{example::TransactionBuilder, EthRpcClient}; +use std::sync::Arc; use tokio::{ io::{AsyncBufReadExt, BufReader}, process::{Child, ChildStderr, Command}, @@ -119,7 +117,7 @@ async fn test_eth_rpc(stderr: ChildStderr) -> anyhow::Result<()> { println!("Account:"); println!("- address: {:?}", account.address()); - let client = HttpClientBuilder::default().build("http://localhost:8545")?; + let client = Arc::new(HttpClientBuilder::default().build("http://localhost:8545")?); let nonce = client.get_transaction_count(account.address(), BlockTag::Latest.into()).await?; let balance = client.get_balance(account.address(), BlockTag::Latest.into()).await?; @@ -127,29 +125,29 @@ async fn test_eth_rpc(stderr: ChildStderr) -> anyhow::Result<()> { println!("- balance: {balance:?}"); println!("\n\n=== Deploying dummy contract ===\n\n"); - let hash = TransactionBuilder::default().input(input).send(&client).await?; + let tx = TransactionBuilder::new(&client).input(input).send().await?; - println!("Hash: {hash:?}"); + println!("Hash: {:?}", tx.hash()); println!("Waiting for receipt..."); let ReceiptInfo { block_number, gas_used, contract_address, .. } = - wait_for_receipt(&client, hash).await?; + tx.wait_for_receipt().await?; let contract_address = contract_address.unwrap(); println!("\nReceipt:"); - println!("Block explorer: https://westend-asset-hub-eth-explorer.parity.io/{hash:?}"); + println!("Block explorer: https://westend-asset-hub-eth-explorer.parity.io/{:?}", tx.hash()); println!("- Block number: {block_number}"); println!("- Gas used: {gas_used}"); println!("- Address: {contract_address:?}"); println!("\n\n=== Calling dummy contract ===\n\n"); - let hash = TransactionBuilder::default().to(contract_address).send(&client).await?; + let tx = TransactionBuilder::new(&client).to(contract_address).send().await?; - println!("Hash: {hash:?}"); + println!("Hash: {:?}", tx.hash()); println!("Waiting for receipt..."); - let ReceiptInfo { block_number, gas_used, to, .. } = wait_for_receipt(&client, hash).await?; + let ReceiptInfo { block_number, gas_used, to, .. } = tx.wait_for_receipt().await?; println!("\nReceipt:"); - println!("Block explorer: https://westend-asset-hub-eth-explorer.parity.io/{hash:?}"); + println!("Block explorer: https://westend-asset-hub-eth-explorer.parity.io/{:?}", tx.hash()); println!("- Block number: {block_number}"); println!("- Gas used: {gas_used}"); println!("- To: {to:?}"); diff --git a/substrate/frame/revive/rpc/src/example.rs b/substrate/frame/revive/rpc/src/example.rs index aad5b4fbc344d..74e2f4ef85760 100644 --- a/substrate/frame/revive/rpc/src/example.rs +++ b/substrate/frame/revive/rpc/src/example.rs @@ -20,38 +20,11 @@ use anyhow::Context; use pallet_revive::evm::{ Account, BlockTag, Bytes, GenericTransaction, TransactionLegacyUnsigned, H160, H256, U256, }; - -/// Wait for a transaction receipt. -pub async fn wait_for_receipt( - client: &(impl EthRpcClient + Send + Sync), - hash: H256, -) -> anyhow::Result { - for _ in 0..30 { - tokio::time::sleep(std::time::Duration::from_secs(2)).await; - let receipt = client.get_transaction_receipt(hash).await?; - if let Some(receipt) = receipt { - return Ok(receipt) - } - } - - anyhow::bail!("Failed to get receipt") -} - -/// Wait for a successful transaction receipt. -pub async fn wait_for_successful_receipt( - client: &(impl EthRpcClient + Send + Sync), - hash: H256, -) -> anyhow::Result { - let receipt = wait_for_receipt(client, hash).await?; - if receipt.is_success() { - Ok(receipt) - } else { - anyhow::bail!("Transaction failed") - } -} +use std::sync::Arc; /// Transaction builder. -pub struct TransactionBuilder { +pub struct TransactionBuilder { + client: Arc, signer: Account, value: U256, input: Bytes, @@ -59,9 +32,46 @@ pub struct TransactionBuilder { mutate: Box, } -impl Default for TransactionBuilder { - fn default() -> Self { +#[derive(Debug)] +pub struct SubmittedTransaction { + tx: GenericTransaction, + hash: H256, + client: Arc, +} + +impl SubmittedTransaction { + /// Get the hash of the transaction. + pub fn hash(&self) -> H256 { + self.hash + } + + pub fn gas(&self) -> U256 { + self.tx.gas.unwrap() + } + + /// Wait for the receipt of the transaction. + pub async fn wait_for_receipt(&self) -> anyhow::Result { + let hash = self.hash(); + for _ in 0..30 { + tokio::time::sleep(std::time::Duration::from_secs(2)).await; + let receipt = self.client.get_transaction_receipt(hash).await?; + if let Some(receipt) = receipt { + if receipt.is_success() { + return Ok(receipt) + } else { + anyhow::bail!("Transaction failed") + } + } + } + + anyhow::bail!("Timeout, failed to get receipt") + } +} + +impl TransactionBuilder { + pub fn new(client: &Arc) -> Self { Self { + client: Arc::clone(client), signer: Account::default(), value: U256::zero(), input: Bytes::default(), @@ -69,9 +79,6 @@ impl Default for TransactionBuilder { mutate: Box::new(|_| {}), } } -} - -impl TransactionBuilder { /// Set the signer. pub fn signer(mut self, signer: Account) -> Self { self.signer = signer; @@ -103,11 +110,8 @@ impl TransactionBuilder { } /// Call eth_call to get the result of a view function - pub async fn eth_call( - self, - client: &(impl EthRpcClient + Send + Sync), - ) -> anyhow::Result> { - let TransactionBuilder { signer, value, input, to, .. } = self; + pub async fn eth_call(self) -> anyhow::Result> { + let TransactionBuilder { client, signer, value, input, to, .. } = self; let from = signer.address(); let result = client @@ -127,8 +131,8 @@ impl TransactionBuilder { } /// Send the transaction. - pub async fn send(self, client: &(impl EthRpcClient + Send + Sync)) -> anyhow::Result { - let TransactionBuilder { signer, value, input, to, mutate } = self; + pub async fn send(self) -> anyhow::Result> { + let TransactionBuilder { client, signer, value, input, to, mutate } = self; let from = signer.address(); let chain_id = Some(client.chain_id().await?); @@ -166,23 +170,18 @@ impl TransactionBuilder { mutate(&mut unsigned_tx); - let tx = signer.sign_transaction(unsigned_tx.into()); - let bytes = tx.signed_payload(); + let signed_tx = signer.sign_transaction(unsigned_tx.into()); + let bytes = signed_tx.signed_payload(); let hash = client .send_raw_transaction(bytes.into()) .await .with_context(|| "transaction failed")?; - Ok(hash) - } - - /// Send the transaction and wait for the receipt. - pub async fn send_and_wait_for_receipt( - self, - client: &(impl EthRpcClient + Send + Sync), - ) -> anyhow::Result { - let hash = self.send(client).await?; - wait_for_successful_receipt(client, hash).await + Ok(SubmittedTransaction { + tx: GenericTransaction::from_signed(signed_tx, Some(from)), + hash, + client, + }) } } diff --git a/substrate/frame/revive/rpc/src/tests.rs b/substrate/frame/revive/rpc/src/tests.rs index e64e16d45b2ae..e1ac274d32ea8 100644 --- a/substrate/frame/revive/rpc/src/tests.rs +++ b/substrate/frame/revive/rpc/src/tests.rs @@ -18,7 +18,7 @@ use crate::{ cli::{self, CliCommand}, - example::{wait_for_successful_receipt, TransactionBuilder}, + example::TransactionBuilder, EthRpcClient, }; use clap::Parser; @@ -29,7 +29,7 @@ use pallet_revive::{ evm::{Account, BlockTag, U256}, }; use static_init::dynamic; -use std::thread; +use std::{sync::Arc, thread}; use substrate_cli_test_utils::*; /// Create a websocket client with a 120s timeout. @@ -117,19 +117,15 @@ macro_rules! unwrap_call_err( #[tokio::test] async fn transfer() -> anyhow::Result<()> { let _lock = SHARED_RESOURCES.write(); - let client = SharedResources::client().await; + let client = Arc::new(SharedResources::client().await); let ethan = Account::from(subxt_signer::eth::dev::ethan()); let initial_balance = client.get_balance(ethan.address(), BlockTag::Latest.into()).await?; let value = 1_000_000_000_000_000_000_000u128.into(); - let hash = TransactionBuilder::default() - .value(value) - .to(ethan.address()) - .send(&client) - .await?; + let tx = TransactionBuilder::new(&client).value(value).to(ethan.address()).send().await?; - let receipt = wait_for_successful_receipt(&client, hash).await?; + let receipt = tx.wait_for_receipt().await?; assert_eq!( Some(ethan.address()), receipt.to, @@ -145,7 +141,7 @@ async fn transfer() -> anyhow::Result<()> { #[tokio::test] async fn deploy_and_call() -> anyhow::Result<()> { let _lock = SHARED_RESOURCES.write(); - let client = SharedResources::client().await; + let client = std::sync::Arc::new(SharedResources::client().await); let account = Account::default(); // Balance transfer @@ -153,13 +149,9 @@ async fn deploy_and_call() -> anyhow::Result<()> { let initial_balance = client.get_balance(ethan.address(), BlockTag::Latest.into()).await?; let value = 1_000_000_000_000_000_000_000u128.into(); - let hash = TransactionBuilder::default() - .value(value) - .to(ethan.address()) - .send(&client) - .await?; + let tx = TransactionBuilder::new(&client).value(value).to(ethan.address()).send().await?; - let receipt = wait_for_successful_receipt(&client, hash).await?; + let receipt = tx.wait_for_receipt().await?; assert_eq!( Some(ethan.address()), receipt.to, @@ -175,8 +167,8 @@ async fn deploy_and_call() -> anyhow::Result<()> { let (bytes, _) = pallet_revive_fixtures::compile_module("dummy")?; let input = bytes.into_iter().chain(data.clone()).collect::>(); let nonce = client.get_transaction_count(account.address(), BlockTag::Latest.into()).await?; - let hash = TransactionBuilder::default().value(value).input(input).send(&client).await?; - let receipt = wait_for_successful_receipt(&client, hash).await?; + let tx = TransactionBuilder::new(&client).value(value).input(input).send().await?; + let receipt = tx.wait_for_receipt().await?; let contract_address = create1(&account.address(), nonce.try_into().unwrap()); assert_eq!( Some(contract_address), @@ -188,12 +180,12 @@ async fn deploy_and_call() -> anyhow::Result<()> { assert_eq!(value, balance, "Contract balance should be the same as the value sent."); // Call contract - let hash = TransactionBuilder::default() + let tx = TransactionBuilder::new(&client) .value(value) .to(contract_address) - .send(&client) + .send() .await?; - let receipt = wait_for_successful_receipt(&client, hash).await?; + let receipt = tx.wait_for_receipt().await?; assert_eq!( Some(contract_address), @@ -206,13 +198,13 @@ async fn deploy_and_call() -> anyhow::Result<()> { // Balance transfer to contract let balance = client.get_balance(contract_address, BlockTag::Latest.into()).await?; - let hash = TransactionBuilder::default() + let tx = TransactionBuilder::new(&client) .value(value) .to(contract_address) - .send(&client) + .send() .await?; - wait_for_successful_receipt(&client, hash).await?; + tx.wait_for_receipt().await?; let increase = client.get_balance(contract_address, BlockTag::Latest.into()).await? - balance; assert_eq!(value, increase, "contract's balance should have increased by the value sent."); Ok(()) @@ -221,17 +213,19 @@ async fn deploy_and_call() -> anyhow::Result<()> { #[tokio::test] async fn revert_call() -> anyhow::Result<()> { let _lock = SHARED_RESOURCES.write(); - let client = SharedResources::client().await; + let client = Arc::new(SharedResources::client().await); let (bytecode, contract) = get_contract("Errors")?; - let receipt = TransactionBuilder::default() + let receipt = TransactionBuilder::new(&client) .input(bytecode) - .send_and_wait_for_receipt(&client) + .send() + .await? + .wait_for_receipt() .await?; - let err = TransactionBuilder::default() + let err = TransactionBuilder::new(&client) .to(receipt.contract_address.unwrap()) .input(contract.function("triggerRequireError")?.encode_input(&[])?.to_vec()) - .send(&client) + .send() .await .unwrap_err(); @@ -244,17 +238,21 @@ async fn revert_call() -> anyhow::Result<()> { #[tokio::test] async fn event_logs() -> anyhow::Result<()> { let _lock = SHARED_RESOURCES.write(); - let client = SharedResources::client().await; + let client = Arc::new(SharedResources::client().await); let (bytecode, contract) = get_contract("EventExample")?; - let receipt = TransactionBuilder::default() + let receipt = TransactionBuilder::new(&client) .input(bytecode) - .send_and_wait_for_receipt(&client) + .send() + .await? + .wait_for_receipt() .await?; - let receipt = TransactionBuilder::default() + let receipt = TransactionBuilder::new(&client) .to(receipt.contract_address.unwrap()) .input(contract.function("triggerEvent")?.encode_input(&[])?.to_vec()) - .send_and_wait_for_receipt(&client) + .send() + .await? + .wait_for_receipt() .await?; assert_eq!(receipt.logs.len(), 1, "There should be one log."); Ok(()) @@ -263,14 +261,14 @@ async fn event_logs() -> anyhow::Result<()> { #[tokio::test] async fn invalid_transaction() -> anyhow::Result<()> { let _lock = SHARED_RESOURCES.write(); - let client = SharedResources::client().await; + let client = Arc::new(SharedResources::client().await); let ethan = Account::from(subxt_signer::eth::dev::ethan()); - let err = TransactionBuilder::default() + let err = TransactionBuilder::new(&client) .value(U256::from(1_000_000_000_000u128)) .to(ethan.address()) .mutate(|tx| tx.chain_id = Some(42u32.into())) - .send(&client) + .send() .await .unwrap_err(); @@ -283,28 +281,32 @@ async fn invalid_transaction() -> anyhow::Result<()> { #[tokio::test] async fn native_evm_ratio_works() -> anyhow::Result<()> { let _lock = SHARED_RESOURCES.write(); - let client = SharedResources::client().await; + let client = Arc::new(SharedResources::client().await); let (bytecode, contract) = get_contract("PiggyBank")?; - let contract_address = TransactionBuilder::default() + let contract_address = TransactionBuilder::new(&client) .input(bytecode) - .send_and_wait_for_receipt(&client) + .send() + .await? + .wait_for_receipt() .await? .contract_address .unwrap(); let value = 10_000_000_000_000_000_000u128; // 10 eth - TransactionBuilder::default() + TransactionBuilder::new(&client) .to(contract_address) .input(contract.function("deposit")?.encode_input(&[])?.to_vec()) .value(value.into()) - .send_and_wait_for_receipt(&client) + .send() + .await? + .wait_for_receipt() .await?; let contract_value = client.get_balance(contract_address, BlockTag::Latest.into()).await?; assert_eq!(contract_value, value.into()); let withdraw_value = 1_000_000_000_000_000_000u128; // 1 eth - TransactionBuilder::default() + TransactionBuilder::new(&client) .to(contract_address) .input( contract @@ -312,7 +314,9 @@ async fn native_evm_ratio_works() -> anyhow::Result<()> { .encode_input(&[Token::Uint(withdraw_value.into())])? .to_vec(), ) - .send_and_wait_for_receipt(&client) + .send() + .await? + .wait_for_receipt() .await?; let contract_value = client.get_balance(contract_address, BlockTag::Latest.into()).await?; From 22421a2d29cd232534f4a7347266f80d9d54d318 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Wed, 5 Feb 2025 15:37:55 +0100 Subject: [PATCH 09/24] Fix rpc --- .../frame/revive/rpc/examples/rust/deploy.rs | 4 + substrate/frame/revive/rpc/src/cli.rs | 18 +- substrate/frame/revive/rpc/src/client.rs | 29 ++- substrate/frame/revive/rpc/src/eth-indexer.rs | 20 +- substrate/frame/revive/rpc/src/example.rs | 1 + substrate/frame/revive/rpc/src/lib.rs | 9 +- .../frame/revive/rpc/src/receipt_extractor.rs | 178 ++++++++++++++++++ .../frame/revive/rpc/src/receipt_provider.rs | 148 +-------------- .../revive/rpc/src/receipt_provider/cache.rs | 12 +- .../revive/rpc/src/receipt_provider/db.rs | 34 ++-- 10 files changed, 271 insertions(+), 182 deletions(-) create mode 100644 substrate/frame/revive/rpc/src/receipt_extractor.rs diff --git a/substrate/frame/revive/rpc/examples/rust/deploy.rs b/substrate/frame/revive/rpc/examples/rust/deploy.rs index 7a559940eba7c..12f539bba42ff 100644 --- a/substrate/frame/revive/rpc/examples/rust/deploy.rs +++ b/substrate/frame/revive/rpc/examples/rust/deploy.rs @@ -60,6 +60,10 @@ async fn main() -> anyhow::Result<()> { let balance = client.get_balance(contract_address, BlockTag::Latest.into()).await?; println!("- Contract balance: {balance:?}"); + if std::env::var("SKIP_CALL").is_ok() { + return Ok(()); + } + println!("\n\n=== Calling contract ===\n\n"); let tx = TransactionBuilder::new(&client) .value(U256::from(1_000_000u32)) diff --git a/substrate/frame/revive/rpc/src/cli.rs b/substrate/frame/revive/rpc/src/cli.rs index b6c57d2c3b0bf..7ebf53e7fbfe0 100644 --- a/substrate/frame/revive/rpc/src/cli.rs +++ b/substrate/frame/revive/rpc/src/cli.rs @@ -16,9 +16,9 @@ // limitations under the License. //! The Ethereum JSON-RPC server. use crate::{ - client::{connect, Client}, + client::{connect, native_to_eth_ratio, Client}, BlockInfoProvider, BlockInfoProviderImpl, CacheReceiptProvider, DBReceiptProvider, - EthRpcServer, EthRpcServerImpl, ReceiptProvider, SystemHealthRpcServer, + EthRpcServer, EthRpcServerImpl, ReceiptExtractor, ReceiptProvider, SystemHealthRpcServer, SystemHealthRpcServerImpl, LOG_TARGET, }; use clap::Parser; @@ -146,6 +146,8 @@ pub fn run(cmd: CliCommand) -> anyhow::Result<()> { let (api, rpc_client, rpc) = connect(&node_rpc_url).await?; let block_provider: Arc = Arc::new(BlockInfoProviderImpl::new(cache_size, api.clone(), rpc.clone())); + + let receipt_extractor = ReceiptExtractor::new(native_to_eth_ratio(&api).await?); let receipt_provider: Arc = if let Some(database_url) = database_url.as_ref() { log::info!(target: LOG_TARGET, "🔗 Connecting to provided database"); @@ -155,6 +157,7 @@ pub fn run(cmd: CliCommand) -> anyhow::Result<()> { database_url, database_read_only, block_provider.clone(), + receipt_extractor.clone(), ) .await?, )) @@ -163,8 +166,15 @@ pub fn run(cmd: CliCommand) -> anyhow::Result<()> { Arc::new(CacheReceiptProvider::default()) }; - let client = - Client::new(api, rpc_client, rpc, block_provider, receipt_provider).await?; + let client = Client::new( + api, + rpc_client, + rpc, + block_provider, + receipt_provider, + receipt_extractor, + ) + .await?; client.subscribe_and_cache_blocks(&essential_spawn_handle); Ok::<_, crate::ClientError>(client) } diff --git a/substrate/frame/revive/rpc/src/client.rs b/substrate/frame/revive/rpc/src/client.rs index 7f45a27a05a35..e312114e90e30 100644 --- a/substrate/frame/revive/rpc/src/client.rs +++ b/substrate/frame/revive/rpc/src/client.rs @@ -17,11 +17,10 @@ //! The client connects to the source substrate chain //! and is used by the rpc server to query and send transactions to the substrate chain. use crate::{ - extract_receipts_from_block, subxt_client::{ revive::calls::types::EthTransact, runtime_types::pallet_revive::storage::ContractInfo, }, - BlockInfoProvider, ReceiptProvider, TransactionInfo, LOG_TARGET, + BlockInfoProvider, ReceiptExtractor, ReceiptProvider, TransactionInfo, LOG_TARGET, }; use jsonrpsee::types::{error::CALL_EXECUTION_FAILED_CODE, ErrorObjectOwned}; use pallet_revive::{ @@ -170,6 +169,7 @@ pub struct Client { rpc: LegacyRpcMethods, receipt_provider: Arc, block_provider: Arc, + receipt_extractor: ReceiptExtractor, chain_id: u64, max_block_weight: Weight, } @@ -180,6 +180,12 @@ async fn chain_id(api: &OnlineClient) -> Result) -> Result { + let query = subxt_client::constants().revive().native_to_eth_ratio(); + api.constants().at(&query).map_err(|err| err.into()) +} + /// Fetch the max block weight from the substrate chain. async fn max_block_weight(api: &OnlineClient) -> Result { let query = subxt_client::constants().system().block_weights(); @@ -226,6 +232,7 @@ impl Client { rpc: LegacyRpcMethods, block_provider: Arc, receipt_provider: Arc, + receipt_extractor: ReceiptExtractor, ) -> Result { let (chain_id, max_block_weight) = tokio::try_join!(chain_id(&api), max_block_weight(&api))?; @@ -236,6 +243,7 @@ impl Client { rpc, receipt_provider, block_provider, + receipt_extractor, chain_id, max_block_weight, }) @@ -320,7 +328,7 @@ impl Client { }, }; - log::debug!(target: LOG_TARGET, "Pushing block: {}", block.number()); + log::trace!(target: LOG_TARGET, "Pushing block: {}", block.number()); if let Err(err) = callback(block).await { log::error!(target: LOG_TARGET, "Failed to process block: {err:?}"); } @@ -336,7 +344,7 @@ impl Client { spawn_handle.spawn("subscribe-blocks", None, async move { let res = client .subscribe_new_blocks(SubscriptionType::BestBlocks, |block| async { - let receipts = extract_receipts_from_block(&block).await?; + let receipts = client.receipt_extractor.extract_from_block(&block).await?; client.receipt_provider.insert(&block.hash(), &receipts).await; if let Some(pruned) = client.block_provider.cache_block(block).await { @@ -360,9 +368,10 @@ impl Client { ) -> Result<(), ClientError> { let new_blocks_fut = self.subscribe_new_blocks(SubscriptionType::FinalizedBlocks, |block| async move { - let receipts = extract_receipts_from_block(&block).await.inspect_err(|err| { - log::error!(target: LOG_TARGET, "Failed to extract receipts from block: {err:?}"); - })?; + let receipts = + self.receipt_extractor.extract_from_block(&block).await.inspect_err(|err| { + log::error!(target: LOG_TARGET, "Failed to extract receipts from block: {err:?}"); + })?; self.receipt_provider.insert(&block.hash(), &receipts).await; Ok(()) }); @@ -370,7 +379,7 @@ impl Client { let Some(oldest_block) = oldest_block else { return new_blocks_fut.await }; let old_blocks_fut = self.subscribe_past_blocks(|block| async move { - let receipts = extract_receipts_from_block(&block).await?; + let receipts = self.receipt_extractor.extract_from_block(&block).await?; self.receipt_provider.insert(&block.hash(), &receipts).await; if block.number() == oldest_block { Ok(ControlFlow::Break(())) @@ -481,7 +490,7 @@ impl Client { pub async fn receipt_by_hash_and_index( &self, block_hash: &H256, - transaction_index: &U256, + transaction_index: usize, ) -> Option { self.receipt_provider .receipt_by_block_hash_and_index(block_hash, transaction_index) @@ -665,7 +674,7 @@ impl Client { let state_root = header.state_root.0.into(); let extrinsics_root = header.extrinsics_root.0.into(); - let receipts = extract_receipts_from_block(&block).await.unwrap_or_default(); + let receipts = self.receipt_extractor.extract_from_block(&block).await.unwrap_or_default(); let gas_used = receipts.iter().fold(U256::zero(), |acc, (_, receipt)| acc + receipt.gas_used); let transactions = if hydrated_transactions { diff --git a/substrate/frame/revive/rpc/src/eth-indexer.rs b/substrate/frame/revive/rpc/src/eth-indexer.rs index 894143be0a525..6e3dc0b4bc5cf 100644 --- a/substrate/frame/revive/rpc/src/eth-indexer.rs +++ b/substrate/frame/revive/rpc/src/eth-indexer.rs @@ -17,8 +17,8 @@ //! The Ethereum JSON-RPC server. use clap::Parser; use pallet_revive_eth_rpc::{ - client::{connect, Client, SubstrateBlockNumber}, - BlockInfoProvider, BlockInfoProviderImpl, DBReceiptProvider, ReceiptProvider, + client::{connect, native_to_eth_ratio, Client, SubstrateBlockNumber}, + BlockInfoProvider, BlockInfoProviderImpl, DBReceiptProvider, ReceiptExtractor, ReceiptProvider, }; use sc_cli::SharedParams; use std::sync::Arc; @@ -78,10 +78,20 @@ pub async fn main() -> anyhow::Result<()> { let (api, rpc_client, rpc) = connect(&node_rpc_url).await?; let block_provider: Arc = Arc::new(BlockInfoProviderImpl::new(0, api.clone(), rpc.clone())); - let receipt_provider: Arc = - Arc::new(DBReceiptProvider::new(&database_url, false, block_provider.clone()).await?); + let receipt_extractor = ReceiptExtractor::new(native_to_eth_ratio(&api).await?); + let receipt_provider: Arc = Arc::new( + DBReceiptProvider::new( + &database_url, + false, + block_provider.clone(), + receipt_extractor.clone(), + ) + .await?, + ); - let client = Client::new(api, rpc_client, rpc, block_provider, receipt_provider).await?; + let client = + Client::new(api, rpc_client, rpc, block_provider, receipt_provider, receipt_extractor) + .await?; client.subscribe_and_cache_receipts(oldest_block).await?; Ok(()) diff --git a/substrate/frame/revive/rpc/src/example.rs b/substrate/frame/revive/rpc/src/example.rs index 74e2f4ef85760..97970098c55b4 100644 --- a/substrate/frame/revive/rpc/src/example.rs +++ b/substrate/frame/revive/rpc/src/example.rs @@ -157,6 +157,7 @@ impl TransactionBuilder { .await .with_context(|| "Failed to fetch gas estimate")?; + println!("Gas estimate: {gas:?}"); let mut unsigned_tx = TransactionLegacyUnsigned { gas, nonce, diff --git a/substrate/frame/revive/rpc/src/lib.rs b/substrate/frame/revive/rpc/src/lib.rs index f2567db8a330d..3599083dcd431 100644 --- a/substrate/frame/revive/rpc/src/lib.rs +++ b/substrate/frame/revive/rpc/src/lib.rs @@ -41,6 +41,9 @@ pub use block_info_provider::*; mod receipt_provider; pub use receipt_provider::*; +mod receipt_extractor; +pub use receipt_extractor::*; + mod rpc_health; pub use rpc_health::*; @@ -299,8 +302,10 @@ impl EthRpcServer for EthRpcServerImpl { block_hash: H256, transaction_index: U256, ) -> RpcResult> { - let Some(receipt) = - self.client.receipt_by_hash_and_index(&block_hash, &transaction_index).await + let Some(receipt) = self + .client + .receipt_by_hash_and_index(&block_hash, transaction_index.as_usize()) + .await else { return Ok(None); }; diff --git a/substrate/frame/revive/rpc/src/receipt_extractor.rs b/substrate/frame/revive/rpc/src/receipt_extractor.rs new file mode 100644 index 0000000000000..e53f98639671c --- /dev/null +++ b/substrate/frame/revive/rpc/src/receipt_extractor.rs @@ -0,0 +1,178 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::{ + client::SubstrateBlock, + subxt_client::{ + revive::{calls::types::EthTransact, events::ContractEmitted}, + system::events::ExtrinsicSuccess, + transaction_payment::events::TransactionFeePaid, + SrcChainConfig, + }, + ClientError, LOG_TARGET, +}; +use futures::{stream, StreamExt}; +use pallet_revive::{ + create1, + evm::{GenericTransaction, Log, ReceiptInfo, TransactionSigned, H256, U256}, +}; +use sp_core::keccak_256; + +/// Utility to extract receipts from extrinsics. +#[derive(Clone, Debug)] +pub struct ReceiptExtractor { + /// The native to eth decimal ratio, used to calculated gas from native fees. + native_to_eth_ratio: u32, +} + +impl ReceiptExtractor { + /// Create a new `ReceiptExtractor` with the given native to eth ratio. + pub fn new(native_to_eth_ratio: u32) -> Self { + Self { native_to_eth_ratio } + } + + /// Extract a [`TransactionSigned`] and a [`ReceiptInfo`] and from an extrinsic. + pub async fn extract_from_extrinsic( + &self, + block: &SubstrateBlock, + ext: subxt::blocks::ExtrinsicDetails>, + call: EthTransact, + ) -> Result<(TransactionSigned, ReceiptInfo), ClientError> { + let transaction_index = ext.index(); + let block_number = U256::from(block.number()); + let block_hash = block.hash(); + let events = ext.events().await?; + + let success = events.has::().inspect_err(|err| { + log::debug!(target: LOG_TARGET, "Failed to lookup for ExtrinsicSuccess event in block {block_number}: {err:?}") + })?; + let tx_fees = events + .find_first::()? + .ok_or(ClientError::TxFeeNotFound) + .inspect_err( + |err| log::debug!(target: LOG_TARGET, "TransactionFeePaid not found in events for block {block_number}\n{err:?}") + )?; + let transaction_hash = H256(keccak_256(&call.payload)); + + let signed_tx = + TransactionSigned::decode(&call.payload).map_err(|_| ClientError::TxDecodingFailed)?; + let from = signed_tx.recover_eth_address().map_err(|_| { + log::error!(target: LOG_TARGET, "Failed to recover eth address from signed tx"); + ClientError::RecoverEthAddressFailed + })?; + + let tx_info = GenericTransaction::from_signed(signed_tx.clone(), Some(from)); + let gas_price = tx_info.gas_price.unwrap_or_default(); + let gas_used = U256::from(tx_fees.tip.saturating_add(tx_fees.actual_fee)) + .saturating_mul(self.native_to_eth_ratio.into()) + .checked_div(gas_price) + .unwrap_or_default(); + + // get logs from ContractEmitted event + let logs = events + .iter() + .filter_map(|event_details| { + let event_details = event_details.ok()?; + let event = event_details.as_event::().ok()??; + + Some(Log { + address: event.contract, + topics: event.topics, + data: Some(event.data.into()), + block_number: Some(block_number), + transaction_hash, + transaction_index: Some(transaction_index.into()), + block_hash: Some(block_hash), + log_index: Some(event_details.index().into()), + ..Default::default() + }) + }) + .collect(); + + let contract_address = if tx_info.to.is_none() { + Some(create1( + &from, + tx_info + .nonce + .unwrap_or_default() + .try_into() + .map_err(|_| ClientError::ConversionFailed)?, + )) + } else { + None + }; + + log::debug!(target: LOG_TARGET, "Adding receipt for tx hash: {transaction_hash:?} - block: {block_number:?}"); + let receipt = ReceiptInfo::new( + block_hash, + block_number, + contract_address, + from, + logs, + tx_info.to, + gas_price, + gas_used, + success, + transaction_hash, + transaction_index.into(), + tx_info.r#type.unwrap_or_default(), + ); + Ok((signed_tx, receipt)) + } + + /// Extract receipts from block. + pub async fn extract_from_block( + &self, + block: &SubstrateBlock, + ) -> Result, ClientError> { + // Filter extrinsics from pallet_revive + let extrinsics = block.extrinsics().await.inspect_err(|err| { + log::debug!(target: LOG_TARGET, "Error fetching for #{:?} extrinsics: {err:?}", block.number()); + })?; + + let extrinsics = extrinsics.iter().flat_map(|ext| { + let call = ext.as_extrinsic::().ok()??; + Some((ext, call)) + }); + + stream::iter(extrinsics) + .map(|(ext, call)| async move { self.extract_from_extrinsic(block, ext, call).await }) + .buffer_unordered(10) + .collect::>>() + .await + .into_iter() + .collect::, _>>() + } + + /// Extract receipt from transaction + pub async fn extract_from_transaction( + &self, + block: &SubstrateBlock, + transaction_index: usize, + ) -> Result<(TransactionSigned, ReceiptInfo), ClientError> { + let extrinsics = block.extrinsics().await?; + let ext = extrinsics + .iter() + .nth(transaction_index) + .ok_or(ClientError::EthExtrinsicNotFound)?; + + let call = ext + .as_extrinsic::()? + .ok_or_else(|| ClientError::EthExtrinsicNotFound)?; + self.extract_from_extrinsic(block, ext, call).await + } +} diff --git a/substrate/frame/revive/rpc/src/receipt_provider.rs b/substrate/frame/revive/rpc/src/receipt_provider.rs index 5c102b3d3d41a..7c5e33cf01e39 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider.rs @@ -15,23 +15,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::{ - client::SubstrateBlock, - subxt_client::{ - revive::{calls::types::EthTransact, events::ContractEmitted}, - system::events::ExtrinsicSuccess, - transaction_payment::events::TransactionFeePaid, - SrcChainConfig, - }, - ClientError, LOG_TARGET, -}; -use futures::{stream, StreamExt}; use jsonrpsee::core::async_trait; -use pallet_revive::{ - create1, - evm::{GenericTransaction, Log, ReceiptInfo, TransactionSigned, H256, U256}, -}; -use sp_core::keccak_256; +use pallet_revive::evm::{ReceiptInfo, TransactionSigned, H256}; use tokio::join; mod cache; @@ -53,7 +38,7 @@ pub trait ReceiptProvider: Send + Sync { async fn receipt_by_block_hash_and_index( &self, block_hash: &H256, - transaction_index: &U256, + transaction_index: usize, ) -> Option; /// Get the number of receipts per block. @@ -79,7 +64,7 @@ impl ReceiptProvider for (Main async fn receipt_by_block_hash_and_index( &self, block_hash: &H256, - transaction_index: &U256, + transaction_index: usize, ) -> Option { if let Some(receipt) = self.0.receipt_by_block_hash_and_index(block_hash, transaction_index).await @@ -111,130 +96,3 @@ impl ReceiptProvider for (Main self.1.signed_tx_by_hash(hash).await } } - -/// Extract a [`TransactionSigned`] and a [`ReceiptInfo`] and from an extrinsic. -pub async fn extract_receipt_from_extrinsic( - block: &SubstrateBlock, - ext: subxt::blocks::ExtrinsicDetails>, - call: EthTransact, -) -> Result<(TransactionSigned, ReceiptInfo), ClientError> { - let transaction_index = ext.index(); - let block_number = U256::from(block.number()); - let block_hash = block.hash(); - let events = ext.events().await?; - - let success = events.has::().inspect_err(|err| { - log::debug!(target: LOG_TARGET, "Failed to lookup for ExtrinsicSuccess event in block {block_number}: {err:?}") - })?; - let tx_fees = events - .find_first::()? - .ok_or(ClientError::TxFeeNotFound) - .inspect_err( - |err| log::debug!(target: LOG_TARGET, "TransactionFeePaid not found in events for block {block_number}\n{err:?}") - )?; - let transaction_hash = H256(keccak_256(&call.payload)); - - let signed_tx = - TransactionSigned::decode(&call.payload).map_err(|_| ClientError::TxDecodingFailed)?; - let from = signed_tx.recover_eth_address().map_err(|_| { - log::error!(target: LOG_TARGET, "Failed to recover eth address from signed tx"); - ClientError::RecoverEthAddressFailed - })?; - - let tx_info = GenericTransaction::from_signed(signed_tx.clone(), Some(from)); - let gas_price = tx_info.gas_price.unwrap_or_default(); - let gas_used = (tx_fees.tip.saturating_add(tx_fees.actual_fee)) - .checked_div(gas_price.as_u128()) - .unwrap_or_default(); - - // get logs from ContractEmitted event - let logs = events - .iter() - .filter_map(|event_details| { - let event_details = event_details.ok()?; - let event = event_details.as_event::().ok()??; - - Some(Log { - address: event.contract, - topics: event.topics, - data: Some(event.data.into()), - block_number: Some(block_number), - transaction_hash, - transaction_index: Some(transaction_index.into()), - block_hash: Some(block_hash), - log_index: Some(event_details.index().into()), - ..Default::default() - }) - }) - .collect(); - - let contract_address = if tx_info.to.is_none() { - Some(create1( - &from, - tx_info - .nonce - .unwrap_or_default() - .try_into() - .map_err(|_| ClientError::ConversionFailed)?, - )) - } else { - None - }; - - log::debug!(target: LOG_TARGET, "Adding receipt for tx hash: {transaction_hash:?} - block: {block_number:?}"); - let receipt = ReceiptInfo::new( - block_hash, - block_number, - contract_address, - from, - logs, - tx_info.to, - gas_price, - gas_used.into(), - success, - transaction_hash, - transaction_index.into(), - tx_info.r#type.unwrap_or_default(), - ); - Ok((signed_tx, receipt)) -} - -/// Extract receipts from block. -pub async fn extract_receipts_from_block( - block: &SubstrateBlock, -) -> Result, ClientError> { - // Filter extrinsics from pallet_revive - let extrinsics = block.extrinsics().await.inspect_err(|err| { - log::debug!(target: LOG_TARGET, "Error fetching for #{:?} extrinsics: {err:?}", block.number()); - })?; - - let extrinsics = extrinsics.iter().flat_map(|ext| { - let call = ext.as_extrinsic::().ok()??; - Some((ext, call)) - }); - - stream::iter(extrinsics) - .map(|(ext, call)| async move { extract_receipt_from_extrinsic(block, ext, call).await }) - .buffer_unordered(10) - .collect::>>() - .await - .into_iter() - .collect::, _>>() -} - -/// Extract receipt from transaction -pub async fn extract_receipts_from_transaction( - block: &SubstrateBlock, - transaction_index: usize, -) -> Result<(TransactionSigned, ReceiptInfo), ClientError> { - let extrinsics = block.extrinsics().await?; - let ext = extrinsics - .iter() - .nth(transaction_index) - .ok_or(ClientError::EthExtrinsicNotFound)?; - - let call = ext - .as_extrinsic::()? - .ok_or_else(|| ClientError::EthExtrinsicNotFound)?; - extract_receipt_from_extrinsic(block, ext, call).await -} diff --git a/substrate/frame/revive/rpc/src/receipt_provider/cache.rs b/substrate/frame/revive/rpc/src/receipt_provider/cache.rs index 39124929ec07d..a4741d18a3b34 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider/cache.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider/cache.rs @@ -16,7 +16,7 @@ // limitations under the License. use super::ReceiptProvider; use jsonrpsee::core::async_trait; -use pallet_revive::evm::{ReceiptInfo, TransactionSigned, H256, U256}; +use pallet_revive::evm::{ReceiptInfo, TransactionSigned, H256}; use std::{collections::HashMap, sync::Arc}; use tokio::sync::RwLock; @@ -48,13 +48,13 @@ impl ReceiptProvider for CacheReceiptProvider { async fn receipt_by_block_hash_and_index( &self, block_hash: &H256, - transaction_index: &U256, + transaction_index: usize, ) -> Option { let cache = self.cache().await; let receipt_hash = cache .transaction_hashes_by_block_and_index .get(block_hash)? - .get(transaction_index)?; + .get(&transaction_index)?; let receipt = cache.receipts_by_hash.get(receipt_hash)?; Some(receipt.clone()) } @@ -84,7 +84,7 @@ struct ReceiptCache { signed_tx_by_hash: HashMap, /// A map of receipt hashes by block hash. - transaction_hashes_by_block_and_index: HashMap>, + transaction_hashes_by_block_and_index: HashMap>, } impl ReceiptCache { @@ -93,7 +93,9 @@ impl ReceiptCache { if !receipts.is_empty() { let values = receipts .iter() - .map(|(_, receipt)| (receipt.transaction_index, receipt.transaction_hash)) + .map(|(_, receipt)| { + (receipt.transaction_index.as_usize(), receipt.transaction_hash) + }) .collect::>(); self.transaction_hashes_by_block_and_index.insert(*block_hash, values); diff --git a/substrate/frame/revive/rpc/src/receipt_provider/db.rs b/substrate/frame/revive/rpc/src/receipt_provider/db.rs index 63917d6193ea7..15f4119b4aefd 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider/db.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider/db.rs @@ -16,10 +16,10 @@ // limitations under the License. use super::*; -use crate::BlockInfoProvider; +use crate::{BlockInfoProvider, ReceiptExtractor}; use jsonrpsee::core::async_trait; use pallet_revive::evm::{ReceiptInfo, TransactionSigned}; -use sp_core::{H256, U256}; +use sp_core::H256; use sqlx::{query, SqlitePool}; use std::sync::Arc; @@ -30,6 +30,8 @@ pub struct DBReceiptProvider { pool: SqlitePool, /// The block provider used to fetch blocks, and reconstruct receipts. block_provider: Arc, + /// A means to extract receipts from extrinsics. + receipt_extractor: ReceiptExtractor, /// weather or not we should write to the DB. read_only: bool, } @@ -40,9 +42,10 @@ impl DBReceiptProvider { database_url: &str, read_only: bool, block_provider: Arc, + receipt_extractor: ReceiptExtractor, ) -> Result { let pool = SqlitePool::connect(database_url).await?; - Ok(Self { pool, block_provider, read_only }) + Ok(Self { pool, block_provider, read_only, receipt_extractor }) } async fn fetch_row(&self, transaction_hash: &H256) -> Option<(H256, usize)> { @@ -125,12 +128,14 @@ impl ReceiptProvider for DBReceiptProvider { async fn receipt_by_block_hash_and_index( &self, block_hash: &H256, - transaction_index: &U256, + transaction_index: usize, ) -> Option { let block = self.block_provider.block_by_hash(block_hash).await.ok()??; - let transaction_index: usize = transaction_index.as_usize(); // TODO: check for overflow - let (_, receipt) = - extract_receipts_from_transaction(&block, transaction_index).await.ok()?; + let (_, receipt) = self + .receipt_extractor + .extract_from_transaction(&block, transaction_index) + .await + .ok()?; Some(receipt) } @@ -138,8 +143,11 @@ impl ReceiptProvider for DBReceiptProvider { let (block_hash, transaction_index) = self.fetch_row(transaction_hash).await?; let block = self.block_provider.block_by_hash(&block_hash).await.ok()??; - let (_, receipt) = - extract_receipts_from_transaction(&block, transaction_index).await.ok()?; + let (_, receipt) = self + .receipt_extractor + .extract_from_transaction(&block, transaction_index) + .await + .ok()?; Some(receipt) } @@ -161,8 +169,11 @@ impl ReceiptProvider for DBReceiptProvider { let transaction_index = result.transaction_index.try_into().ok()?; let block = self.block_provider.block_by_hash(&block_hash).await.ok()??; - let (signed_tx, _) = - extract_receipts_from_transaction(&block, transaction_index).await.ok()?; + let (signed_tx, _) = self + .receipt_extractor + .extract_from_transaction(&block, transaction_index) + .await + .ok()?; Some(signed_tx) } } @@ -179,6 +190,7 @@ mod tests { DBReceiptProvider { pool, block_provider: Arc::new(MockBlockInfoProvider {}), + receipt_extractor: ReceiptExtractor::new(1_000_000), read_only: false, } } From cff3c5dc2e163df7afcd9ba3fac3833e9971697d Mon Sep 17 00:00:00 2001 From: "cmd[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2025 14:45:02 +0000 Subject: [PATCH 10/24] Update from pgherveou running command 'prdoc --audience runtime_dev --bump minor' --- prdoc/pr_7482.prdoc | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 prdoc/pr_7482.prdoc diff --git a/prdoc/pr_7482.prdoc b/prdoc/pr_7482.prdoc new file mode 100644 index 0000000000000..0f548582a21a8 --- /dev/null +++ b/prdoc/pr_7482.prdoc @@ -0,0 +1,7 @@ +title: '[pallet-revive] rpc - gas used fixes ' +doc: +- audience: Runtime Dev + description: '#7463 follow up with RPC fixes' +crates: +- name: pallet-revive-eth-rpc + bump: minor From af848d5cb588314e4bf3d7a29d2de226ceaeff19 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Wed, 5 Feb 2025 16:06:44 +0100 Subject: [PATCH 11/24] Add assert --- substrate/frame/revive/rpc/src/example.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/substrate/frame/revive/rpc/src/example.rs b/substrate/frame/revive/rpc/src/example.rs index 97970098c55b4..c8c633a4e982c 100644 --- a/substrate/frame/revive/rpc/src/example.rs +++ b/substrate/frame/revive/rpc/src/example.rs @@ -45,6 +45,7 @@ impl SubmittedTransaction { self.hash } + /// The gas sent with the transaction. pub fn gas(&self) -> U256 { self.tx.gas.unwrap() } @@ -57,6 +58,10 @@ impl SubmittedTransaction { let receipt = self.client.get_transaction_receipt(hash).await?; if let Some(receipt) = receipt { if receipt.is_success() { + assert!( + self.gas() > receipt.gas_used, + "Gas used should be less than gas estimated." + ); return Ok(receipt) } else { anyhow::bail!("Transaction failed") From 462f643ddea30d45629a08afc5dada0b9caaf324 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Thu, 6 Feb 2025 09:59:42 +0100 Subject: [PATCH 12/24] wip --- Cargo.lock | 31 ++-- substrate/frame/revive/rpc/Cargo.toml | 4 - .../rpc/dockerfiles/eth-indexer/Dockerfile | 28 ---- .../revive/rpc/src/block_info_provider.rs | 9 +- substrate/frame/revive/rpc/src/cli.rs | 133 ++++++++++-------- substrate/frame/revive/rpc/src/client.rs | 69 +++------ substrate/frame/revive/rpc/src/eth-indexer.rs | 98 ------------- substrate/frame/revive/rpc/src/lib.rs | 4 +- .../revive/rpc/src/receipt_provider/db.rs | 10 +- 9 files changed, 112 insertions(+), 274 deletions(-) delete mode 100644 substrate/frame/revive/rpc/dockerfiles/eth-indexer/Dockerfile delete mode 100644 substrate/frame/revive/rpc/src/eth-indexer.rs diff --git a/Cargo.lock b/Cargo.lock index c09ed45733408..49ee5c1094b0b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8674,9 +8674,9 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "httpdate" @@ -8716,9 +8716,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.3.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", @@ -8759,7 +8759,7 @@ checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.3.1", + "hyper 1.6.0", "hyper-util", "log", "rustls 0.23.18", @@ -8798,20 +8798,19 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.5" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", "http 1.1.0", "http-body 1.0.0", - "hyper 1.3.1", + "hyper 1.6.0", "pin-project-lite", "socket2 0.5.7", "tokio", - "tower", "tower-service", "tracing", ] @@ -9415,7 +9414,7 @@ dependencies = [ "async-trait", "base64 0.22.1", "http-body 1.0.0", - "hyper 1.3.1", + "hyper 1.6.0", "hyper-rustls 0.27.3", "hyper-util", "jsonrpsee-core", @@ -9454,7 +9453,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.0", "http-body-util", - "hyper 1.3.1", + "hyper 1.6.0", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", @@ -17903,7 +17902,7 @@ dependencies = [ "futures", "futures-timer", "http-body-util", - "hyper 1.3.1", + "hyper 1.6.0", "hyper-util", "log", "parity-scale-codec", @@ -21340,7 +21339,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.0", "http-body-util", - "hyper 1.3.1", + "hyper 1.6.0", "hyper-rustls 0.27.3", "hyper-util", "ipnet", @@ -23349,7 +23348,7 @@ dependencies = [ "futures", "futures-timer", "http-body-util", - "hyper 1.3.1", + "hyper 1.6.0", "hyper-rustls 0.27.3", "hyper-util", "log", @@ -23459,7 +23458,7 @@ dependencies = [ "governor", "http 1.1.0", "http-body-util", - "hyper 1.3.1", + "hyper 1.6.0", "ip_network", "jsonrpsee", "log", @@ -28683,7 +28682,7 @@ name = "substrate-prometheus-endpoint" version = "0.17.0" dependencies = [ "http-body-util", - "hyper 1.3.1", + "hyper 1.6.0", "hyper-util", "log", "prometheus", diff --git a/substrate/frame/revive/rpc/Cargo.toml b/substrate/frame/revive/rpc/Cargo.toml index 014231f7f3e55..c333c9816e579 100644 --- a/substrate/frame/revive/rpc/Cargo.toml +++ b/substrate/frame/revive/rpc/Cargo.toml @@ -13,10 +13,6 @@ default-run = "eth-rpc" name = "eth-rpc" path = "src/main.rs" -[[bin]] -name = "eth-indexer" -path = "src/eth-indexer.rs" - [[bin]] name = "eth-rpc-tester" path = "src/eth-rpc-tester.rs" diff --git a/substrate/frame/revive/rpc/dockerfiles/eth-indexer/Dockerfile b/substrate/frame/revive/rpc/dockerfiles/eth-indexer/Dockerfile deleted file mode 100644 index 77fa846a145ce..0000000000000 --- a/substrate/frame/revive/rpc/dockerfiles/eth-indexer/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -FROM rust AS builder - -RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y \ - protobuf-compiler \ - clang libclang-dev - -WORKDIR /polkadot -COPY . /polkadot -RUN rustup component add rust-src -RUN cargo build --locked --profile production -p pallet-revive-eth-rpc --bin eth-indexer - -FROM docker.io/parity/base-bin:latest -COPY --from=builder /polkadot/target/production/eth-indexer /usr/local/bin - -USER root -RUN useradd -m -u 1001 -U -s /bin/sh -d /polkadot polkadot && \ -# unclutter and minimize the attack surface - rm -rf /usr/bin /usr/sbin && \ -# check if executable works in this container - /usr/local/bin/eth-indexer --help - -USER polkadot - -ENTRYPOINT ["/usr/local/bin/eth-indexer"] - -# We call the help by default -CMD ["--help"] diff --git a/substrate/frame/revive/rpc/src/block_info_provider.rs b/substrate/frame/revive/rpc/src/block_info_provider.rs index 0e91869cddaa2..b0f3fa6a05e00 100644 --- a/substrate/frame/revive/rpc/src/block_info_provider.rs +++ b/substrate/frame/revive/rpc/src/block_info_provider.rs @@ -91,8 +91,7 @@ impl BlockInfoProvider for BlockInfoProviderImpl { &self, block_number: SubstrateBlockNumber, ) -> Result>, ClientError> { - let cache = self.cache().await; - if let Some(block) = cache.blocks_by_number.get(&block_number).cloned() { + if let Some(block) = self.cache().await.blocks_by_number.get(&block_number).cloned() { return Ok(Some(block)); } @@ -100,12 +99,12 @@ impl BlockInfoProvider for BlockInfoProviderImpl { return Ok(None); }; - self.block_by_hash(&hash).await + let res = self.block_by_hash(&hash).await; + res } async fn block_by_hash(&self, hash: &H256) -> Result>, ClientError> { - let cache = self.cache().await; - if let Some(block) = cache.blocks_by_hash.get(hash).cloned() { + if let Some(block) = self.cache().await.blocks_by_hash.get(hash).cloned() { return Ok(Some(block)); } diff --git a/substrate/frame/revive/rpc/src/cli.rs b/substrate/frame/revive/rpc/src/cli.rs index 7ebf53e7fbfe0..dc948d650130a 100644 --- a/substrate/frame/revive/rpc/src/cli.rs +++ b/substrate/frame/revive/rpc/src/cli.rs @@ -16,7 +16,7 @@ // limitations under the License. //! The Ethereum JSON-RPC server. use crate::{ - client::{connect, native_to_eth_ratio, Client}, + client::{connect, native_to_eth_ratio, Client, SubscriptionType}, BlockInfoProvider, BlockInfoProviderImpl, CacheReceiptProvider, DBReceiptProvider, EthRpcServer, EthRpcServerImpl, ReceiptExtractor, ReceiptProvider, SystemHealthRpcServer, SystemHealthRpcServerImpl, LOG_TARGET, @@ -55,11 +55,6 @@ pub struct CliCommand { #[clap(long, env = "DATABASE_URL")] pub database_url: Option, - /// If true, we will only read from the database and not write to it. - /// Only useful if `--database-url` is specified. - #[clap(long, default_value = "true")] - pub database_read_only: bool, - #[allow(missing_docs)] #[clap(flatten)] pub shared_params: SharedParams, @@ -76,6 +71,11 @@ pub struct CliCommand { /// Initialize the logger #[cfg(not(test))] fn init_logger(params: &SharedParams) -> anyhow::Result<()> { + if std::env::var("TOKIO_CONSOLE").is_ok() { + console_subscriber::init(); + return Ok(()) + } + let mut logger = sc_cli::LoggerBuilder::new(params.log_filters().join(",")); logger .with_log_reloading(params.enable_log_reloading) @@ -94,6 +94,51 @@ fn init_logger(params: &SharedParams) -> anyhow::Result<()> { Ok(()) } +fn build_client( + tokio_handle: &tokio::runtime::Handle, + cache_size: usize, + node_rpc_url: &str, + database_url: Option<&str>, + abort_signal: Signals, +) -> anyhow::Result { + let fut = async { + let (api, rpc_client, rpc) = connect(&node_rpc_url).await?; + let block_provider: Arc = + Arc::new(BlockInfoProviderImpl::new(cache_size, api.clone(), rpc.clone())); + + let receipt_extractor = ReceiptExtractor::new(native_to_eth_ratio(&api).await?); + let receipt_provider: Arc = if let Some(database_url) = database_url { + log::info!(target: LOG_TARGET, "🔗 Connecting to provided database"); + Arc::new(( + CacheReceiptProvider::default(), + DBReceiptProvider::new( + database_url, + block_provider.clone(), + receipt_extractor.clone(), + ) + .await?, + )) + } else { + log::info!(target: LOG_TARGET, "🔌 No database provided, using in-memory cache"); + Arc::new(CacheReceiptProvider::default()) + }; + + let client = + Client::new(api, rpc_client, rpc, block_provider, receipt_provider, receipt_extractor) + .await?; + + Ok(client) + } + .fuse(); + pin_mut!(fut); + + match tokio_handle.block_on(abort_signal.try_until_signal(fut)) { + Ok(Ok(client)) => Ok(client), + Ok(Err(err)) => Err(err), + Err(_) => anyhow::bail!("Process interrupted"), + } +} + /// Start the JSON-RPC server using the given command line arguments. pub fn run(cmd: CliCommand) -> anyhow::Result<()> { let CliCommand { @@ -102,7 +147,6 @@ pub fn run(cmd: CliCommand) -> anyhow::Result<()> { node_rpc_url, cache_size, database_url, - database_read_only, shared_params, .. } = cmd; @@ -138,58 +182,14 @@ pub fn run(cmd: CliCommand) -> anyhow::Result<()> { let tokio_runtime = sc_cli::build_runtime()?; let tokio_handle = tokio_runtime.handle(); let mut task_manager = TaskManager::new(tokio_handle.clone(), prometheus_registry)?; - let essential_spawn_handle = task_manager.spawn_essential_handle(); - - let gen_rpc_module = || { - let signals = tokio_runtime.block_on(async { Signals::capture() })?; - let fut = async { - let (api, rpc_client, rpc) = connect(&node_rpc_url).await?; - let block_provider: Arc = - Arc::new(BlockInfoProviderImpl::new(cache_size, api.clone(), rpc.clone())); - - let receipt_extractor = ReceiptExtractor::new(native_to_eth_ratio(&api).await?); - let receipt_provider: Arc = - if let Some(database_url) = database_url.as_ref() { - log::info!(target: LOG_TARGET, "🔗 Connecting to provided database"); - Arc::new(( - CacheReceiptProvider::default(), - DBReceiptProvider::new( - database_url, - database_read_only, - block_provider.clone(), - receipt_extractor.clone(), - ) - .await?, - )) - } else { - log::info!(target: LOG_TARGET, "🔌 No database provided, using in-memory cache"); - Arc::new(CacheReceiptProvider::default()) - }; - - let client = Client::new( - api, - rpc_client, - rpc, - block_provider, - receipt_provider, - receipt_extractor, - ) - .await?; - client.subscribe_and_cache_blocks(&essential_spawn_handle); - Ok::<_, crate::ClientError>(client) - } - .fuse(); - pin_mut!(fut); - - match tokio_handle.block_on(signals.try_until_signal(fut)) { - Ok(Ok(client)) => rpc_module(is_dev, client), - Ok(Err(err)) => { - log::error!("Error initializing: {err:?}"); - Err(sc_service::Error::Application(err.into())) - }, - Err(_) => Err(sc_service::Error::Application("Client connection interrupted".into())), - } - }; + + let client = build_client( + &tokio_handle, + cache_size, + &node_rpc_url, + database_url.as_deref(), + tokio_runtime.block_on(async { Signals::capture() })?, + )?; // Prometheus metrics. if let Some(PrometheusConfig { port, registry }) = prometheus_config.clone() { @@ -200,8 +200,19 @@ pub fn run(cmd: CliCommand) -> anyhow::Result<()> { ); } - let rpc_server_handle = - start_rpc_servers(&rpc_config, prometheus_registry, tokio_handle, gen_rpc_module, None)?; + let rpc_server_handle = start_rpc_servers( + &rpc_config, + prometheus_registry, + tokio_handle, + || rpc_module(is_dev, client.clone()), + None, + )?; + + task_manager + .spawn_essential_handle() + .spawn("block-subscription", None, async move { + client.subscribe_and_cache_new_blocks(SubscriptionType::BestBlocks).await + }); task_manager.keep_alive(rpc_server_handle); let signals = tokio_runtime.block_on(async { Signals::capture() })?; diff --git a/substrate/frame/revive/rpc/src/client.rs b/substrate/frame/revive/rpc/src/client.rs index e312114e90e30..8c2cfb3873cc5 100644 --- a/substrate/frame/revive/rpc/src/client.rs +++ b/substrate/frame/revive/rpc/src/client.rs @@ -47,7 +47,7 @@ use subxt::{ Config, OnlineClient, }; use thiserror::Error; -use tokio::{sync::RwLock, try_join}; +use tokio::sync::RwLock; use crate::subxt_client::{self, SrcChainConfig}; @@ -212,12 +212,12 @@ pub async fn connect( (OnlineClient, ReconnectingRpcClient, LegacyRpcMethods), ClientError, > { - log::info!(target: LOG_TARGET, "Connecting to node at: {node_rpc_url} ..."); + log::info!(target: LOG_TARGET, "🌐 Connecting to node at: {node_rpc_url} ..."); let rpc_client = ReconnectingRpcClient::builder() .retry_policy(ExponentialBackoff::from_millis(100).max_delay(Duration::from_secs(10))) .build(node_rpc_url.to_string()) .await?; - log::info!(target: LOG_TARGET, "Connected to node at: {node_rpc_url}"); + log::info!(target: LOG_TARGET, "🌟 Connected to node at: {node_rpc_url}"); let api = OnlineClient::::from_rpc_client(rpc_client.clone()).await?; let rpc = LegacyRpcMethods::::new(RpcClient::new(rpc_client.clone())); @@ -259,7 +259,7 @@ impl Client { F: Fn(SubstrateBlock) -> Fut + Send + Sync, Fut: std::future::Future, ClientError>> + Send, { - log::info!(target: LOG_TARGET, "Subscribing to past blocks"); + log::info!(target: LOG_TARGET, "🔍 Subscribing to past blocks"); let mut block = self.api.blocks().at_latest().await.inspect_err(|err| { log::error!(target: LOG_TARGET, "Failed to fetch latest block: {err:?}"); })?; @@ -302,7 +302,7 @@ impl Client { F: Fn(SubstrateBlock) -> Fut + Send + Sync, Fut: std::future::Future> + Send, { - log::info!(target: LOG_TARGET, "Subscribing to new blocks"); + log::info!(target: LOG_TARGET, "🔍 Subscribing to new blocks"); let mut block_stream = match subscription_type { SubscriptionType::BestBlocks => self.api.blocks().subscribe_best().await, SubscriptionType::FinalizedBlocks => self.api.blocks().subscribe_finalized().await, @@ -339,56 +339,23 @@ impl Client { } /// Start the block subscription, and populate the block cache. - pub fn subscribe_and_cache_blocks(&self, spawn_handle: &sc_service::SpawnEssentialTaskHandle) { - let client = self.clone(); - spawn_handle.spawn("subscribe-blocks", None, async move { - let res = client - .subscribe_new_blocks(SubscriptionType::BestBlocks, |block| async { - let receipts = client.receipt_extractor.extract_from_block(&block).await?; - - client.receipt_provider.insert(&block.hash(), &receipts).await; - if let Some(pruned) = client.block_provider.cache_block(block).await { - client.receipt_provider.remove(&pruned).await; - } - - Ok(()) - }) - .await; + pub async fn subscribe_and_cache_new_blocks(&self, subscription_type: SubscriptionType) { + let res = self + .subscribe_new_blocks(subscription_type, |block| async { + let receipts = self.receipt_extractor.extract_from_block(&block).await?; - if let Err(err) = res { - log::error!(target: LOG_TARGET, "Block subscription error: {err:?}"); - } - }); - } - - /// Start the block subscription, and populate the block cache. - pub async fn subscribe_and_cache_receipts( - &self, - oldest_block: Option, - ) -> Result<(), ClientError> { - let new_blocks_fut = - self.subscribe_new_blocks(SubscriptionType::FinalizedBlocks, |block| async move { - let receipts = - self.receipt_extractor.extract_from_block(&block).await.inspect_err(|err| { - log::error!(target: LOG_TARGET, "Failed to extract receipts from block: {err:?}"); - })?; self.receipt_provider.insert(&block.hash(), &receipts).await; - Ok(()) - }); - - let Some(oldest_block) = oldest_block else { return new_blocks_fut.await }; + if let Some(pruned) = self.block_provider.cache_block(block).await { + self.receipt_provider.remove(&pruned).await; + } - let old_blocks_fut = self.subscribe_past_blocks(|block| async move { - let receipts = self.receipt_extractor.extract_from_block(&block).await?; - self.receipt_provider.insert(&block.hash(), &receipts).await; - if block.number() == oldest_block { - Ok(ControlFlow::Break(())) - } else { - Ok(ControlFlow::Continue(())) - } - }); + Ok(()) + }) + .await; - try_join!(new_blocks_fut, old_blocks_fut).map(|_| ()) + if let Err(err) = res { + log::error!(target: LOG_TARGET, "Block subscription error: {err:?}"); + } } /// Expose the storage API. diff --git a/substrate/frame/revive/rpc/src/eth-indexer.rs b/substrate/frame/revive/rpc/src/eth-indexer.rs deleted file mode 100644 index 6e3dc0b4bc5cf..0000000000000 --- a/substrate/frame/revive/rpc/src/eth-indexer.rs +++ /dev/null @@ -1,98 +0,0 @@ -// This file is part of Substrate. - -// Copyright (C) Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//! The Ethereum JSON-RPC server. -use clap::Parser; -use pallet_revive_eth_rpc::{ - client::{connect, native_to_eth_ratio, Client, SubstrateBlockNumber}, - BlockInfoProvider, BlockInfoProviderImpl, DBReceiptProvider, ReceiptExtractor, ReceiptProvider, -}; -use sc_cli::SharedParams; -use std::sync::Arc; - -// Parsed command instructions from the command line -#[derive(Parser, Debug)] -#[clap(author, about, version)] -pub struct CliCommand { - /// The node url to connect to - #[clap(long, default_value = "ws://127.0.0.1:9944")] - pub node_rpc_url: String, - - /// Specifies the block number to start indexing from, going backwards from the current block. - /// If not provided, only new blocks will be indexed - #[clap(long)] - pub oldest_block: Option, - - /// The database used to store Ethereum transaction hashes. - #[clap(long, env = "DATABASE_URL")] - pub database_url: String, - - #[allow(missing_docs)] - #[clap(flatten)] - pub shared_params: SharedParams, -} - -/// Initialize the logger -#[cfg(not(test))] -fn init_logger(params: &SharedParams) -> anyhow::Result<()> { - let mut logger = sc_cli::LoggerBuilder::new(params.log_filters().join(",")); - logger - .with_log_reloading(params.enable_log_reloading) - .with_detailed_output(params.detailed_log_output); - - if let Some(tracing_targets) = ¶ms.tracing_targets { - let tracing_receiver = params.tracing_receiver.into(); - logger.with_profiling(tracing_receiver, tracing_targets); - } - - if params.disable_log_color { - logger.with_colors(false); - } - - logger.init()?; - Ok(()) -} - -#[tokio::main] -pub async fn main() -> anyhow::Result<()> { - let CliCommand { - node_rpc_url, database_url, shared_params: _shared_params, oldest_block, .. - } = CliCommand::parse(); - - #[cfg(not(test))] - init_logger(&_shared_params)?; - - let (api, rpc_client, rpc) = connect(&node_rpc_url).await?; - let block_provider: Arc = - Arc::new(BlockInfoProviderImpl::new(0, api.clone(), rpc.clone())); - let receipt_extractor = ReceiptExtractor::new(native_to_eth_ratio(&api).await?); - let receipt_provider: Arc = Arc::new( - DBReceiptProvider::new( - &database_url, - false, - block_provider.clone(), - receipt_extractor.clone(), - ) - .await?, - ); - - let client = - Client::new(api, rpc_client, rpc, block_provider, receipt_provider, receipt_extractor) - .await?; - client.subscribe_and_cache_receipts(oldest_block).await?; - - Ok(()) -} diff --git a/substrate/frame/revive/rpc/src/lib.rs b/substrate/frame/revive/rpc/src/lib.rs index 3599083dcd431..536678a97ac63 100644 --- a/substrate/frame/revive/rpc/src/lib.rs +++ b/substrate/frame/revive/rpc/src/lib.rs @@ -251,10 +251,10 @@ impl EthRpcServer for EthRpcServerImpl { async fn get_block_by_number( &self, - block: BlockNumberOrTag, + block_number: BlockNumberOrTag, hydrated_transactions: bool, ) -> RpcResult> { - let Some(block) = self.client.block_by_number_or_tag(&block).await? else { + let Some(block) = self.client.block_by_number_or_tag(&block_number).await? else { return Ok(None); }; let block = self.client.evm_block(block, hydrated_transactions).await; diff --git a/substrate/frame/revive/rpc/src/receipt_provider/db.rs b/substrate/frame/revive/rpc/src/receipt_provider/db.rs index 15f4119b4aefd..0b72a2f54dcfb 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider/db.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider/db.rs @@ -32,20 +32,17 @@ pub struct DBReceiptProvider { block_provider: Arc, /// A means to extract receipts from extrinsics. receipt_extractor: ReceiptExtractor, - /// weather or not we should write to the DB. - read_only: bool, } impl DBReceiptProvider { /// Create a new `DBReceiptProvider` with the given database URL and block provider. pub async fn new( database_url: &str, - read_only: bool, block_provider: Arc, receipt_extractor: ReceiptExtractor, ) -> Result { let pool = SqlitePool::connect(database_url).await?; - Ok(Self { pool, block_provider, read_only, receipt_extractor }) + Ok(Self { pool, block_provider, receipt_extractor }) } async fn fetch_row(&self, transaction_hash: &H256) -> Option<(H256, usize)> { @@ -71,10 +68,6 @@ impl DBReceiptProvider { #[async_trait] impl ReceiptProvider for DBReceiptProvider { async fn insert(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]) { - if self.read_only { - return - } - let block_hash_str = hex::encode(block_hash); for (_, receipt) in receipts { let transaction_hash = hex::encode(receipt.transaction_hash); @@ -191,7 +184,6 @@ mod tests { pool, block_provider: Arc::new(MockBlockInfoProvider {}), receipt_extractor: ReceiptExtractor::new(1_000_000), - read_only: false, } } From 60e21bff2a798707665560bf7d8498e66635ebce Mon Sep 17 00:00:00 2001 From: pgherveou Date: Thu, 6 Feb 2025 10:00:14 +0100 Subject: [PATCH 13/24] fix --- substrate/frame/revive/rpc/src/cli.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/substrate/frame/revive/rpc/src/cli.rs b/substrate/frame/revive/rpc/src/cli.rs index dc948d650130a..0f734300c4cf2 100644 --- a/substrate/frame/revive/rpc/src/cli.rs +++ b/substrate/frame/revive/rpc/src/cli.rs @@ -71,11 +71,6 @@ pub struct CliCommand { /// Initialize the logger #[cfg(not(test))] fn init_logger(params: &SharedParams) -> anyhow::Result<()> { - if std::env::var("TOKIO_CONSOLE").is_ok() { - console_subscriber::init(); - return Ok(()) - } - let mut logger = sc_cli::LoggerBuilder::new(params.log_filters().join(",")); logger .with_log_reloading(params.enable_log_reloading) From 08c21b572b4bf0f70abf9603bab92b6191cd2402 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Thu, 6 Feb 2025 10:06:22 +0100 Subject: [PATCH 14/24] rm eth-indexer --- .github/workflows/build-publish-eth-rpc.yml | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/.github/workflows/build-publish-eth-rpc.yml b/.github/workflows/build-publish-eth-rpc.yml index a98b3881a1453..621ac3cd44c3c 100644 --- a/.github/workflows/build-publish-eth-rpc.yml +++ b/.github/workflows/build-publish-eth-rpc.yml @@ -13,7 +13,6 @@ concurrency: env: ETH_RPC_IMAGE_NAME: "docker.io/paritypr/eth-rpc" - ETH_INDEXER_IMAGE_NAME: "docker.io/paritypr/eth-indexer" jobs: set-variables: @@ -53,15 +52,6 @@ jobs: tags: | ${{ env.ETH_RPC_IMAGE_NAME }}:${{ env.VERSION }} - - name: Build eth-indexer Docker image - uses: docker/build-push-action@v6 - with: - context: . - file: ./substrate/frame/revive/rpc/dockerfiles/eth-indexer/Dockerfile - push: false - tags: | - ${{ env.ETH_INDEXER_IMAGE_NAME }}:${{ env.VERSION }} - build_push_docker: name: Build and push docker images runs-on: parity-large @@ -88,11 +78,3 @@ jobs: tags: | ${{ env.ETH_RPC_IMAGE_NAME }}:${{ env.VERSION }} - - name: Build eth-indexer Docker image - uses: docker/build-push-action@v6 - with: - context: . - file: ./substrate/frame/revive/rpc/dockerfiles/eth-indexer/Dockerfile - push: true - tags: | - ${{ env.ETH_INDEXER_IMAGE_NAME }}:${{ env.VERSION }} From 9fa7698b588988b9d6029ff6fbed2716c61a64fe Mon Sep 17 00:00:00 2001 From: pgherveou Date: Thu, 6 Feb 2025 10:10:42 +0100 Subject: [PATCH 15/24] fix --- substrate/frame/revive/rpc/src/block_info_provider.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/substrate/frame/revive/rpc/src/block_info_provider.rs b/substrate/frame/revive/rpc/src/block_info_provider.rs index b0f3fa6a05e00..7b4bea1c85f52 100644 --- a/substrate/frame/revive/rpc/src/block_info_provider.rs +++ b/substrate/frame/revive/rpc/src/block_info_provider.rs @@ -99,8 +99,7 @@ impl BlockInfoProvider for BlockInfoProviderImpl { return Ok(None); }; - let res = self.block_by_hash(&hash).await; - res + self.block_by_hash(&hash).await } async fn block_by_hash(&self, hash: &H256) -> Result>, ClientError> { From af72b254d87b999c5196f50159e1768f85cc33b2 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Thu, 6 Feb 2025 10:17:40 +0100 Subject: [PATCH 16/24] rm helper method --- .../frame/revive/rpc/src/block_info_provider.rs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/substrate/frame/revive/rpc/src/block_info_provider.rs b/substrate/frame/revive/rpc/src/block_info_provider.rs index 7b4bea1c85f52..675a83ed6558b 100644 --- a/substrate/frame/revive/rpc/src/block_info_provider.rs +++ b/substrate/frame/revive/rpc/src/block_info_provider.rs @@ -69,29 +69,23 @@ impl BlockInfoProviderImpl { ) -> Self { Self { api, rpc, cache: Arc::new(RwLock::new(BlockCache::new(cache_size))) } } - - async fn cache(&self) -> tokio::sync::RwLockReadGuard<'_, BlockCache> { - self.cache.read().await - } } #[async_trait] impl BlockInfoProvider for BlockInfoProviderImpl { async fn cache_block(&self, block: SubstrateBlock) -> Option { - let mut cache = self.cache.write().await; - cache.insert(block) + self.cache.write().await.insert(block) } async fn latest_block(&self) -> Option> { - let cache = self.cache().await; - cache.buffer.back().cloned() + self.cache.read().await.buffer.back().cloned() } async fn block_by_number( &self, block_number: SubstrateBlockNumber, ) -> Result>, ClientError> { - if let Some(block) = self.cache().await.blocks_by_number.get(&block_number).cloned() { + if let Some(block) = self.cache.read().await.blocks_by_number.get(&block_number).cloned() { return Ok(Some(block)); } @@ -103,7 +97,7 @@ impl BlockInfoProvider for BlockInfoProviderImpl { } async fn block_by_hash(&self, hash: &H256) -> Result>, ClientError> { - if let Some(block) = self.cache().await.blocks_by_hash.get(hash).cloned() { + if let Some(block) = self.cache.read().await.blocks_by_hash.get(hash).cloned() { return Ok(Some(block)); } From cb54a9d16be1109de1edbddf271d8e6725b3070e Mon Sep 17 00:00:00 2001 From: "cmd[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2025 09:24:03 +0000 Subject: [PATCH 17/24] Update from pgherveou running command 'prdoc --audience runtime_dev --bump minor' --- prdoc/pr_7493.prdoc | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 prdoc/pr_7493.prdoc diff --git a/prdoc/pr_7493.prdoc b/prdoc/pr_7493.prdoc new file mode 100644 index 0000000000000..e613cb049551f --- /dev/null +++ b/prdoc/pr_7493.prdoc @@ -0,0 +1,9 @@ +title: '[pallet-revive] fix eth-rpc indexing' +doc: +- audience: Runtime Dev + description: |- + - Fix a deadlock on the RWLock cache + - Remove eth-indexer, we won't need it anymore, the indexing will be started from within eth-rpc directly +crates: +- name: pallet-revive-eth-rpc + bump: minor From 5e647f4a9c52bdf33373179bf0ae03ff5a365d80 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Thu, 6 Feb 2025 14:41:25 +0100 Subject: [PATCH 18/24] enable old block indexing --- substrate/frame/revive/rpc/src/cli.rs | 15 ++++++++++-- substrate/frame/revive/rpc/src/client.rs | 23 +++++++++++++++++-- .../frame/revive/rpc/src/receipt_provider.rs | 9 ++++++-- .../revive/rpc/src/receipt_provider/db.rs | 6 +++-- 4 files changed, 45 insertions(+), 8 deletions(-) diff --git a/substrate/frame/revive/rpc/src/cli.rs b/substrate/frame/revive/rpc/src/cli.rs index 0f734300c4cf2..732865b416596 100644 --- a/substrate/frame/revive/rpc/src/cli.rs +++ b/substrate/frame/revive/rpc/src/cli.rs @@ -16,7 +16,7 @@ // limitations under the License. //! The Ethereum JSON-RPC server. use crate::{ - client::{connect, native_to_eth_ratio, Client, SubscriptionType}, + client::{connect, native_to_eth_ratio, Client, SubscriptionType, SubstrateBlockNumber}, BlockInfoProvider, BlockInfoProviderImpl, CacheReceiptProvider, DBReceiptProvider, EthRpcServer, EthRpcServerImpl, ReceiptExtractor, ReceiptProvider, SystemHealthRpcServer, SystemHealthRpcServerImpl, LOG_TARGET, @@ -55,6 +55,10 @@ pub struct CliCommand { #[clap(long, env = "DATABASE_URL")] pub database_url: Option, + /// If not provided, only new blocks will be indexed + #[clap(long)] + pub index_until_block: Option, + #[allow(missing_docs)] #[clap(flatten)] pub shared_params: SharedParams, @@ -142,6 +146,7 @@ pub fn run(cmd: CliCommand) -> anyhow::Result<()> { node_rpc_url, cache_size, database_url, + index_until_block, shared_params, .. } = cmd; @@ -206,7 +211,13 @@ pub fn run(cmd: CliCommand) -> anyhow::Result<()> { task_manager .spawn_essential_handle() .spawn("block-subscription", None, async move { - client.subscribe_and_cache_new_blocks(SubscriptionType::BestBlocks).await + let fut1 = client.subscribe_and_cache_new_blocks(SubscriptionType::BestBlocks); + if let Some(index_until_block) = index_until_block { + let fut2 = client.cache_old_blocks(index_until_block); + tokio::join!(fut1, fut2); + } else { + fut1.await; + } }); task_manager.keep_alive(rpc_server_handle); diff --git a/substrate/frame/revive/rpc/src/client.rs b/substrate/frame/revive/rpc/src/client.rs index 8c2cfb3873cc5..e538259ca8b74 100644 --- a/substrate/frame/revive/rpc/src/client.rs +++ b/substrate/frame/revive/rpc/src/client.rs @@ -266,11 +266,11 @@ impl Client { loop { let block_number = block.number(); - log::debug!(target: LOG_TARGET, "Processing block {block_number}"); + log::trace!(target: LOG_TARGET, "Processing past block #{block_number}"); let parent_hash = block.header().parent_hash; let control_flow = callback(block).await.inspect_err(|err| { - log::error!(target: LOG_TARGET, "Failed to process block {block_number}: {err:?}"); + log::error!(target: LOG_TARGET, "Failed to process past block #{block_number}: {err:?}"); })?; match control_flow { @@ -358,6 +358,25 @@ impl Client { } } + /// Cache old blocks up to the given block number. + pub async fn cache_old_blocks(&self, oldest_block: SubstrateBlockNumber) { + let res = self + .subscribe_past_blocks(|block| async move { + let receipts = self.receipt_extractor.extract_from_block(&block).await?; + self.receipt_provider.archive(&block.hash(), &receipts).await; + if block.number() <= oldest_block { + Ok(ControlFlow::Break(())) + } else { + Ok(ControlFlow::Continue(())) + } + }) + .await; + + if let Err(err) = res { + log::error!(target: LOG_TARGET, "Past Block subscription error: {err:?}"); + } + } + /// Expose the storage API. async fn storage_api( &self, diff --git a/substrate/frame/revive/rpc/src/receipt_provider.rs b/substrate/frame/revive/rpc/src/receipt_provider.rs index 7c5e33cf01e39..f1d76e6cceb8a 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider.rs @@ -31,8 +31,13 @@ pub trait ReceiptProvider: Send + Sync { /// Insert receipts into the provider. async fn insert(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]); - /// Remove receipts with the given block hash. - async fn remove(&self, block_hash: &H256); + /// Similar to `insert`, but intended for archiving receipts from historical blocks. + /// Cache providers may use the default no-operation implementation. + async fn archive(&self, _block_hash: &H256, _receipts: &[(TransactionSigned, ReceiptInfo)]) {} + + /// Deletes receipts associated with the specified block hash. + /// Archive providers can use the default no-operation implementation. + async fn remove(&self, _block_hash: &H256) {} /// Get the receipt for the given block hash and transaction index. async fn receipt_by_block_hash_and_index( diff --git a/substrate/frame/revive/rpc/src/receipt_provider/db.rs b/substrate/frame/revive/rpc/src/receipt_provider/db.rs index 0b72a2f54dcfb..7083913032d33 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider/db.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider/db.rs @@ -67,6 +67,10 @@ impl DBReceiptProvider { #[async_trait] impl ReceiptProvider for DBReceiptProvider { + async fn archive(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]) { + self.insert(block_hash, receipts).await; + } + async fn insert(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]) { let block_hash_str = hex::encode(block_hash); for (_, receipt) in receipts { @@ -98,8 +102,6 @@ impl ReceiptProvider for DBReceiptProvider { } } - async fn remove(&self, _block_hash: &H256) {} - async fn receipts_count_per_block(&self, block_hash: &H256) -> Option { let block_hash = hex::encode(block_hash); let row = query!( From d074f356f14c855f94c772073cf652108fec81de Mon Sep 17 00:00:00 2001 From: pgherveou Date: Thu, 6 Feb 2025 15:42:00 +0100 Subject: [PATCH 19/24] run migration in receipt_provider --- .../frame/revive/rpc/src/eth-rpc-tester.rs | 28 +++++++++++++------ .../revive/rpc/src/receipt_provider/db.rs | 1 + 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/substrate/frame/revive/rpc/src/eth-rpc-tester.rs b/substrate/frame/revive/rpc/src/eth-rpc-tester.rs index 7cea1a303e383..460812602fe20 100644 --- a/substrate/frame/revive/rpc/src/eth-rpc-tester.rs +++ b/substrate/frame/revive/rpc/src/eth-rpc-tester.rs @@ -30,6 +30,10 @@ const DOCKER_CONTAINER_NAME: &str = "eth-rpc-test"; #[derive(Parser, Debug)] #[clap(author, about, version)] pub struct CliCommand { + /// The eth-rpc url to connect to + #[clap(long, default_value = "http://127.0.0.1:8545")] + pub rpc_url: String, + /// The parity docker image e.g eth-rpc:master-fb2e414f #[clap(long, default_value = "eth-rpc:master-fb2e414f")] docker_image: String, @@ -42,7 +46,11 @@ pub struct CliCommand { #[tokio::main] async fn main() -> anyhow::Result<()> { - let CliCommand { docker_bin, docker_image, .. } = CliCommand::parse(); + let CliCommand { docker_bin, rpc_url, docker_image, .. } = CliCommand::parse(); + + if std::env::var("SKIP_DOCKER").is_ok() { + return test_eth_rpc(&rpc_url).await; + } let mut docker_process = start_docker(&docker_bin, &docker_image)?; let stderr = docker_process.stderr.take().unwrap(); @@ -54,7 +62,7 @@ async fn main() -> anyhow::Result<()> { _ = interrupt() => { kill_docker().await?; } - _ = test_eth_rpc(stderr) => { + _ = wait_and_test_eth_rpc(stderr, &rpc_url) => { kill_docker().await?; } } @@ -101,7 +109,7 @@ async fn kill_docker() -> anyhow::Result<()> { Ok(()) } -async fn test_eth_rpc(stderr: ChildStderr) -> anyhow::Result<()> { +async fn wait_and_test_eth_rpc(stderr: ChildStderr, rpc_url: &str) -> anyhow::Result<()> { let mut reader = BufReader::new(stderr).lines(); while let Some(line) = reader.next_line().await? { println!("{line}"); @@ -110,6 +118,10 @@ async fn test_eth_rpc(stderr: ChildStderr) -> anyhow::Result<()> { } } + test_eth_rpc(rpc_url).await +} + +async fn test_eth_rpc(rpc_url: &str) -> anyhow::Result<()> { let account = Account::default(); let data = vec![]; let (bytes, _) = pallet_revive_fixtures::compile_module("dummy")?; @@ -117,7 +129,7 @@ async fn test_eth_rpc(stderr: ChildStderr) -> anyhow::Result<()> { println!("Account:"); println!("- address: {:?}", account.address()); - let client = Arc::new(HttpClientBuilder::default().build("http://localhost:8545")?); + let client = Arc::new(HttpClientBuilder::default().build(rpc_url)?); let nonce = client.get_transaction_count(account.address(), BlockTag::Latest.into()).await?; let balance = client.get_balance(account.address(), BlockTag::Latest.into()).await?; @@ -136,8 +148,8 @@ async fn test_eth_rpc(stderr: ChildStderr) -> anyhow::Result<()> { println!("\nReceipt:"); println!("Block explorer: https://westend-asset-hub-eth-explorer.parity.io/{:?}", tx.hash()); println!("- Block number: {block_number}"); - println!("- Gas used: {gas_used}"); - println!("- Address: {contract_address:?}"); + println!("- Gas used: {gas_used}"); + println!("- Address: {contract_address:?}"); println!("\n\n=== Calling dummy contract ===\n\n"); let tx = TransactionBuilder::new(&client).to(contract_address).send().await?; @@ -149,7 +161,7 @@ async fn test_eth_rpc(stderr: ChildStderr) -> anyhow::Result<()> { println!("\nReceipt:"); println!("Block explorer: https://westend-asset-hub-eth-explorer.parity.io/{:?}", tx.hash()); println!("- Block number: {block_number}"); - println!("- Gas used: {gas_used}"); - println!("- To: {to:?}"); + println!("- Gas used: {gas_used}"); + println!("- To: {to:?}"); Ok(()) } diff --git a/substrate/frame/revive/rpc/src/receipt_provider/db.rs b/substrate/frame/revive/rpc/src/receipt_provider/db.rs index 7083913032d33..8154774f7b62c 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider/db.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider/db.rs @@ -42,6 +42,7 @@ impl DBReceiptProvider { receipt_extractor: ReceiptExtractor, ) -> Result { let pool = SqlitePool::connect(database_url).await?; + sqlx::migrate!().run(&pool).await?; Ok(Self { pool, block_provider, receipt_extractor }) } From e4a4482e56dd0edf0a3fe99842ef342023a44a53 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Thu, 6 Feb 2025 16:12:30 +0100 Subject: [PATCH 20/24] fix clippy, cleanup db --- ...332be50096d4e37be04ed8b6f46ac5c242043.json | 2 +- .../0001_create_transaction_hashes.sql | 20 +++++++++++++++++++ ...241205165418_create_transaction_hashes.sql | 15 -------------- substrate/frame/revive/rpc/src/cli.rs | 4 ++-- .../revive/rpc/src/receipt_provider/db.rs | 6 +++--- 5 files changed, 26 insertions(+), 21 deletions(-) create mode 100644 substrate/frame/revive/rpc/migrations/0001_create_transaction_hashes.sql delete mode 100644 substrate/frame/revive/rpc/migrations/20241205165418_create_transaction_hashes.sql diff --git a/substrate/frame/revive/rpc/.sqlx/query-29af64347f700919dc2ee12463f332be50096d4e37be04ed8b6f46ac5c242043.json b/substrate/frame/revive/rpc/.sqlx/query-29af64347f700919dc2ee12463f332be50096d4e37be04ed8b6f46ac5c242043.json index 2443035c433d7..b125d2401d831 100644 --- a/substrate/frame/revive/rpc/.sqlx/query-29af64347f700919dc2ee12463f332be50096d4e37be04ed8b6f46ac5c242043.json +++ b/substrate/frame/revive/rpc/.sqlx/query-29af64347f700919dc2ee12463f332be50096d4e37be04ed8b6f46ac5c242043.json @@ -6,7 +6,7 @@ { "name": "block_hash", "ordinal": 0, - "type_info": "Text" + "type_info": "Blob" }, { "name": "transaction_index", diff --git a/substrate/frame/revive/rpc/migrations/0001_create_transaction_hashes.sql b/substrate/frame/revive/rpc/migrations/0001_create_transaction_hashes.sql new file mode 100644 index 0000000000000..26386c7d4d010 --- /dev/null +++ b/substrate/frame/revive/rpc/migrations/0001_create_transaction_hashes.sql @@ -0,0 +1,20 @@ +-- Useful commands: +-- +-- Set DATABASE_URL environment variable. +-- export DATABASE_URL=sqlite:///$HOME/tx_hashes.db +-- +-- Create DB: +-- cargo sqlx database create +-- +-- Run migration manually: +-- cargo sqlx migrate run +-- +-- Update compile time artifacts: +-- cargo sqlx prepare +CREATE TABLE IF NOT EXISTS transaction_hashes ( + transaction_hash BLOB NOT NULL PRIMARY KEY, + transaction_index INTEGER NOT NULL, + block_hash BLOB NOT NULL +); + +CREATE INDEX IF NOT EXISTS idx_block_hash ON transaction_hashes (block_hash); diff --git a/substrate/frame/revive/rpc/migrations/20241205165418_create_transaction_hashes.sql b/substrate/frame/revive/rpc/migrations/20241205165418_create_transaction_hashes.sql deleted file mode 100644 index 43405bea9d046..0000000000000 --- a/substrate/frame/revive/rpc/migrations/20241205165418_create_transaction_hashes.sql +++ /dev/null @@ -1,15 +0,0 @@ --- Create DB: --- DATABASE_URL="..." cargo sqlx database create --- --- Run migration: --- DATABASE_URL="..." cargo sqlx migrate run --- --- Update compile time artifacts: --- DATABASE_URL="..." cargo sqlx prepare -CREATE TABLE transaction_hashes ( - transaction_hash CHAR(64) NOT NULL PRIMARY KEY, - transaction_index INTEGER NOT NULL, - block_hash CHAR(64) NOT NULL -); - -CREATE INDEX idx_block_hash ON transaction_hashes (block_hash); diff --git a/substrate/frame/revive/rpc/src/cli.rs b/substrate/frame/revive/rpc/src/cli.rs index 732865b416596..e40f3b1d053ce 100644 --- a/substrate/frame/revive/rpc/src/cli.rs +++ b/substrate/frame/revive/rpc/src/cli.rs @@ -101,7 +101,7 @@ fn build_client( abort_signal: Signals, ) -> anyhow::Result { let fut = async { - let (api, rpc_client, rpc) = connect(&node_rpc_url).await?; + let (api, rpc_client, rpc) = connect(node_rpc_url).await?; let block_provider: Arc = Arc::new(BlockInfoProviderImpl::new(cache_size, api.clone(), rpc.clone())); @@ -184,7 +184,7 @@ pub fn run(cmd: CliCommand) -> anyhow::Result<()> { let mut task_manager = TaskManager::new(tokio_handle.clone(), prometheus_registry)?; let client = build_client( - &tokio_handle, + tokio_handle, cache_size, &node_rpc_url, database_url.as_deref(), diff --git a/substrate/frame/revive/rpc/src/receipt_provider/db.rs b/substrate/frame/revive/rpc/src/receipt_provider/db.rs index 8154774f7b62c..7f44f04ee85b3 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider/db.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider/db.rs @@ -60,7 +60,7 @@ impl DBReceiptProvider { .await .ok()??; - let block_hash = result.block_hash.parse::().ok()?; + let block_hash = H256::from_slice(&result.block_hash[..]); let transaction_index = result.transaction_index.try_into().ok()?; Some((block_hash, transaction_index)) } @@ -75,7 +75,7 @@ impl ReceiptProvider for DBReceiptProvider { async fn insert(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]) { let block_hash_str = hex::encode(block_hash); for (_, receipt) in receipts { - let transaction_hash = hex::encode(receipt.transaction_hash); + let transaction_hash: &[u8] = receipt.transaction_hash.as_ref(); let transaction_index = receipt.transaction_index.as_u32() as i32; let result = query!( @@ -161,7 +161,7 @@ impl ReceiptProvider for DBReceiptProvider { .await .ok()??; - let block_hash = result.block_hash.parse::().ok()?; + let block_hash = H256::from_slice(&result.block_hash[..]); let transaction_index = result.transaction_index.try_into().ok()?; let block = self.block_provider.block_by_hash(&block_hash).await.ok()??; From 289e3fda40dd14d66022369e9164c6f8ccebb295 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Thu, 6 Feb 2025 16:51:51 +0100 Subject: [PATCH 21/24] fix tests --- substrate/frame/revive/rpc/src/receipt_provider/db.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/rpc/src/receipt_provider/db.rs b/substrate/frame/revive/rpc/src/receipt_provider/db.rs index 7f44f04ee85b3..827fadad5b547 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider/db.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider/db.rs @@ -47,7 +47,7 @@ impl DBReceiptProvider { } async fn fetch_row(&self, transaction_hash: &H256) -> Option<(H256, usize)> { - let transaction_hash = hex::encode(transaction_hash); + let transaction_hash = transaction_hash.as_ref(); let result = query!( r#" SELECT block_hash, transaction_index @@ -73,7 +73,7 @@ impl ReceiptProvider for DBReceiptProvider { } async fn insert(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]) { - let block_hash_str = hex::encode(block_hash); + let block_hash = block_hash.as_ref(); for (_, receipt) in receipts { let transaction_hash: &[u8] = receipt.transaction_hash.as_ref(); let transaction_index = receipt.transaction_index.as_u32() as i32; @@ -88,7 +88,7 @@ impl ReceiptProvider for DBReceiptProvider { transaction_index = EXCLUDED.transaction_index "#, transaction_hash, - block_hash_str, + block_hash, transaction_index ) .execute(&self.pool) @@ -104,7 +104,7 @@ impl ReceiptProvider for DBReceiptProvider { } async fn receipts_count_per_block(&self, block_hash: &H256) -> Option { - let block_hash = hex::encode(block_hash); + let block_hash = block_hash.as_ref(); let row = query!( r#" SELECT COUNT(*) as count @@ -148,7 +148,7 @@ impl ReceiptProvider for DBReceiptProvider { } async fn signed_tx_by_hash(&self, transaction_hash: &H256) -> Option { - let transaction_hash = hex::encode(transaction_hash); + let transaction_hash = transaction_hash.as_ref(); let result = query!( r#" SELECT block_hash, transaction_index From bfb37f27ca3ace7b0008c3fe4ef6d76af376af72 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Fri, 7 Feb 2025 09:48:27 +0100 Subject: [PATCH 22/24] fix metadata --- .../frame/revive/rpc/revive_chain.metadata | Bin 677962 -> 359062 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/substrate/frame/revive/rpc/revive_chain.metadata b/substrate/frame/revive/rpc/revive_chain.metadata index eb234188a64462d8e61aa98fdd877c3d1cdac025..89476924cf0079c20e9f4542ba4a21eba517f0d4 100644 GIT binary patch literal 359062 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

foAEl>!OOI3ln*b`h3KCJ!7EaWgewDKjAKC4jlB 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%0AnlNFTierGvX#ik};OAh~<+L7mOC*1}Bo) zOEoJo6h0fhIrlYgtf0CQ-?i+nRFR*vgV;bhN;z4W-^2kg@A*o_ax|L5t-NSu(~TXo z2L*AZfnq}R6%4kdp8>3ZXUVD)wHE;z+ifJzC<&cq4b$b_rsrb!=1v5pBqdHK!3Bh9 zZ0m{P)iih`DM9C|cc!DMi?!#UENy}uE74nW!ZGr42Q_#C2$0)`Kl4*Cj!(E23=Hwok1N znuW_naCpn5W+`Y1{6)!ad~y3)qY}M6wIXf~%0TK;i&f z3J5)NH#wGCk*_(H57ELL~`i2aEjuN0R3D0ytCUZu5)=49JCzs8UnzYo` zf_>~MqoFs&_F|(VJ2rh$;vxVK^s>EZBKHDzA4Tm%Qc1-fc!0f;s30kd#!v*(*6x<> z2q;<6E|Y&B8U?T+N&t5otNMrlhZFkG^rrLZa4<*yV`!wfwj&UVinOzOV|Q(pN(SJa zo)qjIMii*a#23qzO;+FT5jJdf1JDt*`h&;f$@A4)mGU*Y&3?MtSOu-&E-VTkD+rDL zb7*uYoyuxkN8#i~pho2uqd2!**Spv4ZK#8&jUI_7?eA)NCLX)+-belfq}Z$|A2lhdK=joPDA>&e>;YL=vrT(^HA*)f@jk6o1ro^h^HXT&7Q6RypH_ zCwz8VtMB76B5v3p(SK)B-T!B(E!F*h;P*zh`~P&A^Hkb@he-p>00R314<7^G3FJ2B ztqTI>eH+lM?a!nCMR&Q8hmVa#|JS9*F)rW8*i}pdCcuSCX@~!eu)qNF*aFTFG@7wk zepfhBeIz&|{&``eT5mJ~*??W}569)9|8tB$Md@ER&{I4dzZ4iYyR(J-;&!uk?S1c^ za|0>lIUJ(p#KWT(v0Lb(jI#oOH>q836x=hQoK2;T;XK46xvPZWnT;oC-L0UFq2bYv zq!ykerpv@5n0#pmj09^F&$@lDNr5z$`9fy-FK@8%80cNsD{c(}s*G}v$262619;6P zP`UI{ISO9TXQEq>$P=N(IAS!?QouP4dMl5l9g2ode!g81|8-YhmbuG zgWU8VCs!i|5MQm41ZI2tm7nl^+_oDH?~UkoA``!`xY>Tqy^}Zb-lL$;A&Gki$6B2 zQ%7~;kR-)Dy^n9;P?$sod-Dp8usIYK<7FN^Q+#>0MdNjP9}EqiMt}os^*VwCq_ie# zn`I=_5qdM3xKv}~ki8$3PIPVA2Nv2J2UxF0Gnu?pTT;#qEB_1Bo&y`oZE{9ORDJf0 znNQ1(9l*>7YEnS9^j$b($qpX6HwaBChX_3#zU650t+1bKfREw3gp%cT`U zsJa0f+p(R&t;g__*q|-~;0+oLSk?lr%+=ElkHx8Y9uvj}2{tM>32k6;ucJxO4d~i~ zr4l3qX6jl6#vj*0hDBQlV^he$0krXZheu~kr-R>Z6Re_5#7>N_m741};N*nnzuCBN zIDUa*y2pLtQFP%2I_@AwK8hx;Gvy|2FREns&`#`Sg|-ZHw@)xE6MIYYnT4k?>OmB*#iW3J^y2g>U&88Eq4k zhD(lQEneJklfaJDYam~=tmw!(Y6{F? z%ryB#cc)*3N6d*mbsgrXNO3bT2hRl!0}pFS&Bx1T=!Brd}{ zi$SZKvWPLwyz5=K*xktjT<3Io>g)*>==rn42-+6Nc>!$|I4>c5Q4DahfHajaUcL$3 zWq9LAbk#bHI<6fU7gij;6C&ttRRwSt`#}R96l~H;n&ky4r(!v|97I`xZz00-SVDLU z*e*S(*c%c)_eaTzEL8k$^<6pv)4MOP#li>9fJjP3WlI$YTS?W#|sF0oxgbI$9Dc?5gp<&7=tv31>I>>c7cYxXXZIM zJdp~y&q_DS@{ANov7|cg1XoUvl(g+M#TJ6bjyXCOUF&N^mF5o0^-Jm%hvP*aStmjo z#>A57Tzu*B%DK}dg}vIYa6KM(BJ2vcGq!701~Bi4o)t4;N{H4VXWN=@U=I{vGgXT)m+t4;#ge zACyUi_m%ssPuhqZzzD`i+XA;;#J&qC67H@*12>?wtez^qV0{b7QKNbtTL4~(3*W(` z;G%`9r%SXf14S3k8~pB5fF%}zz>~sl!V<6#cS9!Jv&AI(&I}5st8z;*@SWi03T-9on13Ft0urLHAD$Vy=#>}2 z!eo+@w7?UYuY!3{kfpKA4efZq|+T{RfoStrpMn3K?w)w(AKd%m{)M`R@?D1UR0 z#?t;2vR{*f!Q*R?#c(!~WCzj?dKy+^9ASdu}yx;c?BN6)k;pqP1k+OtZ zB$DtvBLTQ`s*ZpjEWj+9`R2scJ^Z|ti~i?W{EsnA)s54q8#}9|o$Bh1Y8fFtcp=v} zcM;8HR6*~Ra7~>)oqgr>X~zuT1YIBNM=ON?JzuNOX+MR$p{2uv8qN6|?A#!}cvt+r zqZ~v_hrwv#XmSOs1N~`hCl`J1uK1siavZ*^U<3dx_roI=buRkBUGcY%auk{Ff{_67 zTok$|8KPXOUN@IqF8a^A;{Q0x0d?v%7}s!=x3D=8dUNqV9pzYDPeK20iWbg7mm^^L zRYdwl7U!bfT>PV>97tQ2!HDjUj$eh%3RM$Gq`COZM>!7bDCqqi5tD;=#CL__#@x}K z8Q)bf0wmfl*EVmK%C#nb&PA1>`0Gcx20>@RD1INPx*9H)LHzqr{4Ym2h_tU@4Ebnb zrFNyZj{k>2T#@K84(!m;(q>zi!HE7KnqE?0r4h)`aQw}qT$ix7U>xs?j$c#1VJ^CN z_-N0FbrkeI6(O7iEMXYOx#)r6qvctyr=b56(fBgm2f65>;rNS3x%|>i(DS>aiFszV zfLEUwK3d&E`w9AfFZO)93J*FuKY7%9t{nxvzb_iQw842lJ{*7kD3_eQ1pUrLGtjgU zMNx=-4B&5vk5+@obQg@|k!TrXJCCcR=mtR=-UlVBmy13#e6$)wr(T0`{Yf;njH@mj zUH;wh(Q@jvuV4)SPo&x5aE6;VEEoO#@X_kMGU2qtU^KJQ#Ffei;L6QKpFiSLs{I6g z&jFa69O6oax5k59zj(wFBJ3>~$K%n3tIV)ksaGpr-OWW`9*+O*C{J&DpTU^UN5z&+ z3r6mV7E#5fAJ)h^C*47q{fnPGsTkrB34#0%?%HC$%ej=EZxa_jDo+7_N9YZQ%ol z9}Q`P{>ov##c0DpT+oqZc(hH?0)x)Io}bb%s@zyfUxEfW81{lMUg8;bxy2H{#c|6l zH1cc?{+$xi>~T{PXxK#q{Dd$shP9H9S$HytPSWQO&$-J_NusY_sWh-y3{BvY3dDGD zcOznhmdET|k!1#t@mj0j@PYX9)L-QPIPU{@f8hdmXy!Vcm4T~8JS_<9HF*)ZyF1mK zHwe0Ds9`*w^uY!nVH%Wj<`CsxtE|%Hu~UN+@xkHvQsy}9iG_>O7sOrZqgZ)@ zxp@QAT->=#`=x8~7334bt%8haPghKTPN`B?o{>AHIQ(S6NPLGoFPRsETe7g9MlFaL z{8Af(XB=Vr61D~TTU^tkUnJbPe5xpq+G!8&Qv|9&N+2u}mu6B}gva@9#4$$7rw0x7 zRa@A91e)y{D~4^08q)yTfC!k342Kz;1ar zi?xXOq!6A)Zqck=nu=Ea=-f4fwfYPmBa2`ixAr0$d$2=#jS>5FSeovntC~hz-3Ge4 zkZ?Gb*8t}=p88WX&t}`#Uz;E3>@z*W_F7hU(=9-fXG#L2hCH@X^zwf8)+0Pw|aISto z430^l*B3Zs$tH}V4aB-0v|ubE3k>3C2@)D;K#+`#N?`7KWgF>cOvqt`lza|R)dz4T zyd2sJB09>4m_i^v;X+zWQrpI7R;0k#4066Q3@$;|(7w1Sk5MtDMkOg64RljHh0}2v zOIt_PN99_Kz@o+Pr6j;Ow&Xg{fz3To4xLIfiJ~xA%)^a%i|jH(ua0aBKL!zztRzXy zNfDp$kS{vh@|;#GqS#2X16qZ^GRX1r)K!Q95e4Y&L^1i!$^5k)t}ib)Uen5#lg2;b zSC=Y0t!(fGAd)1>`&Aj#$Fj)H)c#l8af_d@E2uAnB*bZxUU8kRmsnwh9Yd(0kcVEuggqoGASnlZ_>S|#5I zZ|Lf*QyjZ>o9YyIv;;}mQVUe4NY%PX)b_^zUd1j-wulmH;6m>_?82Svjpz znKCG2@jQ~|a1Ep~1d4*BD~VO+^@CPnIH|($H&_Dx`pK=^S~kt8P2)9B)Yf=Owr>k~ z(ktTg$Ksup9!75zcNRu>tz3)Gij@To7v*9nrSbr35cRK<*I`y8+n(MP=v5hwJwK21 zHj~@bMb%Jb!CAGo+t}Ru21U3WIIq%qyONL$_Cc!X{x+Lgc){S+_!K%SiQfdB})R{gsJUVUeUKl~Q+N&_8#^pI~B8PRc`BW}m_MY5}D8Jp^vEs%v zAT{I_%FC-w0LDB#?BTKC{#|C{#F5#LD=wN`iWgk{2Gt8iDNuXFTx@WvD69cEkHRRJ z$CZj%X%{69b(q%%*r68Zbg@(}>qrlnjf?~Z6b7OC0w5iy@1?Vbi(`klZ9K9j$_ck% z>VWHtX$d~KR=H8yMA^nhQeq>mONa)qq9m!h!Qvvibm2Lmt$GW8V<}DVk)(0jhmr;7 zr;6#bo8-H8;B9o$b>OIkh0L~f0&XpnNxwp)F6 zdt>oJn_m_Z>Rg<9Rc&f+{gih(2fA)A_tdaYWGOito*l6qbu|wtRKgv-kDDP=>b9jq zf|WWv69U&Dd9PSh+g|xJ`IT!#j)S$tDptS-!P9`5SgoaJ(z>-af3dfVvUYA1fYCv+ zaE1O`mcv$SblStE&q@Qc)fGNtQ*yIc(j7i_{0l^G za*p$!TYLyR_wYe?P8S403ekyh!V>ZLrgYt5|4>I)$5z0XSJ@_2Iws@zJgQyfthx=I z4OShovFNUeuY_xZoyxrL%uaU#4!At?@ze8HE-haAQ~IiLe#|4tlS8uc{1fZ~Obiu5 z;fR%DzWYEziZ1v$H>*k}Y1!U3fIUx>Ex34pQx*gWf<%&-0GY zd8U#UdKyy|S3e!I(6!R}NG|cO?2OUV1^Zt-jyI_{!44vLz?U-YF;fK8J_ zOImZ)=$43_L{E7N4%vpVdpqJvB(2iUEx$W!*hdgEEAYwRm*Qa7tfB%T$QPx}Ei67* z5n#|zPseXLZHY29gmNru=aVxS`Mlf2nBficjAT=ioe`hO#pa_ z0%zE@^+RVqdqv#W%CDUTN(?;=35=I10di21Xfb7g`{71n?dn3@r~r})D=()V>};(v z6LJNO3UxcuT7N(tOE<>z9tpLjwSNKkH3hL*`*czGu=1EJuvNI9kCJEDZa7^bREm`W z;j{veLD{~wiyhW(mFSEwC(@ofxhoiXr?YDuOIo!WO*E$sCwXuTJz7Paq@Q=xgi<{= z7++gUCpb5y4V#+&;S?SL@ne7}sF(EP5Wq%|fr1(+;)f?CYYu+{YO#Uvyv&&UoT7Aa zxp)rTKHyZQ%|(x7PBBm(ymCk9p<`?sNum%n@IEx*3D)g8_xZ20K?4xyQN<}BuR0f7oN;D+aLS?ccErXbK^%bkTRDP=0H>x{aaR3S3t3nBA8q73>fs?2Q z%W?^=)kE<=9NrfF6-sDU-Ly%aBZGJldT^$Zsh4e=xNhwmMM=P;r%s9_Ds|enW~qK1 zCG28UR4e5ZUJ7^EL7a4+a#gphb>DR3;drX(`YE0ui}d_L5;W436HCBQyaLA+z>QoU z)B$a|aNA$Snev0l-bD z%kZAU;kXPx2(hJp8A(#fx(vUd^vK;O!c~Yj>K2HEKh*#R%7HRX!+k!K<9(aC7Z0a0 z_Th|=8%}~&ANQjAxK9j^&X|uIdIM@#!h~jri}}$BRmDc*k!tzn_##u5`SN1fyL#cu zER}&Q)7{`H;8&E^3kdK;JcTx_;4q3V{%ldu!htys{{zse6_f@B#&t2Lb!6t$&hJnY zTlY=@N_T3H^jvUI_B|O86a)Lz+!9doC0PjSi{b*~Lo!ZPvdJE)Dd=CC?uQa!kouOo zX9SCA17fqv)Xe$2(1=jcrv zg6}<~bIEzEmQ5>nxWmxglnAdg7pu3gQb;+!eWa?^F!M&xJU3tpqja zFN>F;`pbY8%f;uYD`ISxIx9A~%Y}ru2C0S+6aeCqQ3@3}LyHulV?+ynUv*EE|I6!a zpWEOZv~aLvWw1vZ`ATX1#!FijhZDuOiGWv08g=(gyC`Cy$`?Og7$VMhOMR8gsf}X^&o+nXgyZcE*D)DMS zrG}UrhX?eP%mIxr{&HUj6ktg}h`Np?aR&>i`dFxR#g!JioY5ruT#sW|JkMa79lIoY z$sud#!oV+!Q?ITGCVjgTMvWC>{nz6R$^IGjDxZ>b-t7$OD_l%KWC0Or7w$=hL~2zPT?sq8GZ(k|OUHJ73!1!D`(3rL^|9pbro0cpfo z9m_!mbMv@n6gl`7oKN?ZC!4U8d_5gfOY8u@k!3&+usLOxLJCyGh2wrLs&c=Gq~^xO zD#RGhy~;|g8zLp<{W;oQj=p~mN`bl*Dk4gG9*XCfq<#9dEnB5LZv%5_`@CI<2Ng&! zu-A~0-IF?U)1}y&(lv1(k<_}=hh>&?KnVK)Ci3*@)+K}8QwnIvwfpN&M2}{P$W3f8 zDspeXj%4)1!N|ys%+b-TV!RH*_lKsw;jkqgHxphjjFtw2j}zxrOJCn3*kdu-ENIR2Wj@STMKI_ ziXtF0DoVQR%oBkG6?YEF-IKz??}0WEN%< zI;)D0MC0}ro^BrX*Cb-{ObCc&(owdTTNDllNxpm;?= z31y7>wM{np1_q(cy3eGVdj0Yk zq0&yU>!Zp7Yw<4NK`XJS}uda$Qa6{Mj@rWz!pze zz)W)Lu|{-H$|zXOi_$qR5b_1-x^QjkAblArgI4O4aGNN4lp6SzM`O^mI2FJGwKei| zGyA1=JqEzyvK#1JvZKh-DDV(Z`IX&wnEEmX`ke2j+yg?FH!X8tc~ zNFAx1q>i{NOh}d`(KHBHX+4SDF67)NosV4j?h@=t4PFYrf#!+5lcjL}t(2XV;EF;m zXA(Wrk&qKa9S_RVoGFS8PhLVJ8q4TNWLSUUXqtSJAuvY-j7v6WcbZo0dOys+>ydIp z1@YT&{?kmwXzpafv#<=7fq=O#kA`$5W0N?HC(FFdGN)di0P#R ziD@@}CkRo)5en+>x68ykg4$bjvX7m_v|H8gg8H};K{CPc><4kLM|V$g+|v?#^Yk?q zVu@EB-qbqeDe*mUQ-uqHIi{i>0_SMwxwDYAk1MK$1fUKo`Aa~+lJs-f4Q13(@D41R zjr4qPhC8#e3^P-c)r>}Ze!uWs(2^Uv^YZ&+#OtEa%V5hE% zW{H9Fj=}_4ogFoJ>c62Pkt)a>(s^0oj;1KR2!psX;4y)H@j>8*5Y?-j8ELOXb1teQ zpTJ|%VqT3wrG5V3J3cz~GkD4n>g}@2!lmtgDy*qnalJMSFjEIu!mfOK{|or39t*g; z-MWM;SSjfEZA&<<6otBNSVX=&IyK_pL{n$xZt>38Vv4vvc@G8*i|`t>s0fs-r+{hahWv~^xg3okJMl zLBWdw8}+;PCA?=#6}%ZtK4>#qwjEwUl0(-Gp5_L->*soI^4K=&j%MTI!~xx%Mfvwc zV{dD%wi!M`LRg>WT~)$VL`-o}~c3ns^=230Y4}0dVQMT3PGI(0D2faTJ%#Oc2WC; zm!(K9b?#}G;=|Z?8MhdIb$~NX&+G0Et_Q4W))@P?-IvUn4P;bom*Iuu4=se1m&i99 zxzN81=acDsS6M1^U8CaKsLsNg#f65-*Yv3+(0VEyq|uY~k~(T|wCb-=bUy@VfO?!H zp5a<^t`fsDuqJo6d26O4Ww#-qs&+9yyS@pGHBZdF1pV6zA3n>MUq90PT!^`XmEW_{kg};AHkB5Y%C%;6^xT zX{E*ypDU5%s}|Ynb*}nomGQ)pYg4__XS*cawjb>KpLub9Q!DbY|4m2~+_tQ#eJyEd z&6We*k`;TXdhHvlb4g|if>f?{zyx1Q*viZ3G{+bg4A>Yb*CC!;K$2dSL(l5gg8neC z8smKWMg?b^FxcBb57XG27C`vn3WYOvqLPY72x1C?0SQLU`YsVHFu3iuq4~;Aerfq1yb2k33`h)a>~0a-#b3Oh zpHkP)ZexkH1m_m06_KGmsT1X8-l%hh;!y|ZgT6)3g~}#WLChKIiG;(^E;92r`FGvj z#mb9ap%-4S*Pd_QI3eJ;Q2b3025TEIXiX{?MS!j%c+BL!YOYwC#9S%AN2~%=sUsaw z6JVh<{>&u)JT1Aa5=wXaeVQ_$$)`K^P{iqFaQzLrs3)ILj_u22O5 zXt+E{&&9KX`Ld3SdqqYVq#ab3ErB7H)Hm(!TI|RewcSW!5EYv@?7D!Y%RE!EWeSr& zK^B#BGZn;dGX)l7{f=5-hhC`^L4VfecI2-prOlc^A|nw8#NxB^NSrHM6*IR`=yRi~ zP`>F^$SWXqU;%CilS{p-F8>xvs85#SO34<%YoKPF0Q2MV0uYjP{#ZUKL>$aLA?aLx zT5ahy?w8;Ua3LIV>R^&Z+7_L1BHVC6H5f0mis6fOACo`O_Hlg>)1F2+fitR&pEwJR z^l537WDh%=rFDbLAuVDd*1@n)^iwqrC;F5-jY{C<6{BQ8{d*+vwsYs9B(1BSZYX~o zx_YACIkOl$C`jZ*VjV=G*5j4Z8R*5$9^{faaUIXu$!t#)TyB!KPX!cm=#T)H>2G5kYu zqQDU+F23VRWh_lnUe9PGVD_8}l3|T*si_gTe?w@P>e-n=eZ@QUC|cSX6q-sU^nlz+ zYP@wCS=OY9q`?YjhL3_4$I&SVn=sQ$2*Nr+N%s3S*`yQ|N9BXtL5By!tkZHG_)7|A z8IX*bGr@LtYYQXr9lLhj@R(yqTfCP97f+!30ELszm2ERb6Uuk{u-kEo3-|H_{?6np zT1qF1sc;)NJ*s`w90D`bv<0U8GUGmS zHNPv2sdItlDiQjEygq|MtYiXq6`a^THJ2&LG+1S3vGWK1?i8dpXCK^HLCYp^9MjOnPW1AxftDzxZ7E2EO&DN=rb92}IU=kC z)=u_0oip}&5eGpmSkBhw<*im8EmV0yF@>gy*aT<{d!cudz@Fs#Xw&HlxME#(+m$(x z=xX4B=(#;%6?GQo;P~{XuQGd>L+IeWa66Pl55<>x*A5J;o3L)2K8isOfZHBP-D{KU(&56!;|+c$D6f` zc2@B5Wf!eQO9iDi)iMV1M!kY#77i|rwRRqSf;vDgq@U-6m#W+5a`1M0=QCCa@>+WC zWY4Uh2d6&Pi^oZd%0alA3M$2vXyt06uv=gf8Zk;sMZd#8TNS%b{O`y4fjOYtQ!?N~ z;eVgN-gZmc*)NZr*5j**NeAD+-ZCvCWW+-0{7R>knS=}>+MqPIhyeQZjME?%QGQrmbenY1s&54 zd*yM~T&)@S-UxI}ri(D(0|yd%jthBFn!M0$NtKe8E=RDurrkU#jmw@WUtB|OEPV@v$eY|%SH|4j4{h6c|l#LQ0BB#4Nipsj2P#l00oQ`Qt;gZN-pdotR6t|lK$bJuDygSLXDg<26e+6u z$O!_=!dIloJBG%K3M_MziLc9z82#6<3=M_Z5LaM0AJ{;+X2h@n2rLVQ#^|naE+*gE z5_hC?F~Wj@LsvPGqfeMmbppYPZxVCEnS;s4YRGk#Y671h*ZXOB;EZuEJgGF-lLVrR zEUfG<7%;_81PzACo$(CCX@Q5uGgv4niM^@;)RF$OgKP|h5LC=LqEWn|U?Yg6yoSrJ zv86n+?tW3YBK1RT5;mK-B^W-WCY(`+ZC`1 z3Y*NIO(DwAs)^=4Y$xADC|ZR<)fst zpXKu&o11-cDP*i22O~v2`6(*SCl2W%jg!Npvj!f9oDyC>-w8eJhM|Xz#8X5=VjR1+ zJr?ug)&vjCc(w%?KZLK|eWO+0ISrP(D*Qh7y z@SF@nG>?jthIXMfCyT5^m?0WIlEbIeqp$H$W+AO+@+_ zG0~R`9*3`R8|ZhZhU3`$Jzj%>%zn)++&*WCpdm4lou=Av%73v5rXU})R<#~E+o z1|>qT#ano~)$-IQOg4%)$TfqX)2yDNVUzUXOJnQ?*Wy83F5+JzD0{Q2y9%F$H-xSt zIZ`B#EG|jPs-t;G!(OH;SKNe7Km?hL>sBiG31*ybh@JcNfgXOy1Wd-ZUpF)P7Cz)t z$9edI_x-r7&wlbld=kQc7{wvMwaTmFLsE4VgH{tCX%u~8V1Z(oA^YF3f?PkP6%vmO z$2*sIr~}Q-t0}iw4sHv3BFfD@lb&+RUE;DN(W`x&axHlXZo|~waQee1<@|^@!EHjg zQICOCxyqNrRnrZ5EZYC3D)dG2a)(Vd9VDOtds(umg0&(CfX`CyTj$u!N$C}Lv9>mV zX2LUx8?m3R*S4?A_=|`UnQOChE3d=`fkTRrlm)THgt(9#>`dcdT&#EXyFy98FmNVTh2~RG)IN_FARc1kvOS5nk(7|yqwt> z?9LlWa*sd~kR1K^TDSJD_=dyf7j z2Bn5VU)^GyN3QYQv3QmhCtjjF5e+ZAc%@R|d0^5Vm)$u8B;$q&Sn}xsD?qa>C6xu3 z4EaOwKpA-Yz*ZBK&Eiji29kjUGQyX>24BG;27jiXgA13UK)~h*kJ!o3ktEf%bg4m9 zu3@WARyLq5A&<@+Oi6wo9u(=?EO2^TcDHYCgQY-)dNg*bh~C&F4jtQ9?={Gl+o}O4 zt}nIkKo9Otq0$n-^fVmmYSYEh3=Yqv%q0J(04=M-SD_JlvNhhJ!T^z8Qj504Nh5p? znv;zDTCD5hfiry{xLTfo%kYCKi-oHQ!$YLftsz&2u~`Y%3C`s@v4=n@TZLN<8qToU zK)ajOW)ld?3@ic~n$9Lk6tJ67kSGDik*1GRJ%MWs+God=3pNvn*e|qtax}8LgCA(E zN>Wji>Y$r7>syL}9;dX69Q&ygCyKt}d*5>W?x}AL=0g^hOBbEd(LQ1uZYS(s&zkA* zh$IIP#&&)N6UO$kFa12*J%iXYyBr(I3oahL6Ch;0?uLbY8ckAjW+$@ThFM)>%KMZqzl$b==3| zylL{sy{W4Eq8uoK(^ZciRHivPX?|8URH-L zhQpWp{d6#uR4Uj~)~GdjcRtxAkzwc*(9IfK+~A;3@UjAFDtKhUQE7j zi5O~0XFu?@wLQzk&zNQ71C$3b5TT#-DId9a_WpQY^XR=t2o&3%#m}g{w#6Ku4kaQ; zR)t|;p+GrJhu~BEWsnS^r`;@|B9%5tbD=pRo26@=6=)KcNH@#aLHfXb!`950@D?S{ zaxiBzvJ$!POL{kV5vH_csc&KZ>-Sl(61P*OB?CeJ2#T*2aF&4LWV2lvU$Hl&J zc-%BR20JdZhD|T_u3^tt2$b$xM5?R_Un7Tul~o*sN|#YLvIb4(MrHjbfU}j#`Z~hi za^}9+DlkX_KvbeqW3>U^3*e^59deEkM7~pMZm(@JhZy|1Y*)SEq_pbw>h@#5!fDr# zc7SZD1_us}7U)=Jy(5ZHQatw4fxgf3K_RxsLKns3^n<5V+?%X1b7hWxah$=sE=3VY z9#GKdUPL`eBjTUyw3irP>Zp^>v#AaKZaVWwfnRdziAK<@y_`3bS`0b40A5zs&Lf>T zj%FZXKb;}s(&k`AA`3X{!1v< zl0Id_#6oE!y7u^uwDlt16^3oJ*{*@fYoEnyT6`V6r&@*{AMCDgueV5+*S>)E`U_)u zRj8Hkx~MHike1{Iz7NYZ2X}GdUB^g->t}_#gf#sQ1WmSRog`beq+MPI#Z5}$T?$cu zV&uIDN*%NgRc71jm!1*T*42=Y^`rJFJ=SchbSz%52u0u`j7M))_A1BX%_osOgv4yc ztSRL2%AZyC1os30Hsj(`uO5q=?XUeg+=~@^actoWS5a4qb@l-y%GM$k1&V=Mnv~X}SVN6yfH zPISYa*Bb2B{m2gS;qq+;0TGP>u3kB{T!#SnEc@G!;iOR$UW3YKt+kfbyNE2 z+8#f*mRg(m7>+F_XP@F`wZPx3}gUp@XX0UF35L zmf^qatHT`5X}E9pWkHU)-N^hE`mzK5M;@61=cH6Ymo7ca3BttKob-pT6p+5souXtf zR3AAwO=%+oP?h&Mc?yv&>6igaj_C-uFT?B@tt&N4?>`pbYUh0cIuy8My99sRLX-TE zyvL0|`JwY7|9Z2)SBpy>(ZJd`ARxI)cK+cLxCg>l!6AoFZo#4g_mXOq#P}i ztF%T+a`72e;nGfFJU*Kmk7vCXeX;yR^p2_fVzP-T70i%eHi0yK9U3CV83{^+8frG8JwSbg} zXHmaGyH(F^ki9TWbE+#O4o%c(xF(B0bmATRBey(nnZsE4*ot@3SzQP|?lY4h8 z9^HN4d!u(2e!>kG(O9K#Cp1fAEeJ9 zuZLA-7Td!gAW-;kg7GF1wZwG%U3JCu6&kdvf+fP~(MxP1BOus`dI*vnk!>XTWfY0|^9^dyfDMN$Zzt3fWxdeG6&3(g36I6!@ieGf z!>73W8MvTT++OK&%s`QW196!c^P6mY7}!Ol6MB!Hp&Xz z!2!1M%NEhlN*Y$*)J7f$Aq)~x8(~ncXiC@fh}gM7Cz7h}W|<)m4#mF6GIV4ECXrK; zxGL}~0D~^vjYF#BJJnXnH{RUasWe(EP@>UTb4XuS{vOYA`rgE7xW`l8)#e^Wj|}G~ zR58fqR$?ThjEqsnMNu?Hv7C#Z%0*EeMUQ6Qn`nD&Lf(3Oc(h=phua&?j&+AG`MSe? zQ27&#V^^=w569({iJp~b=WBJN!f5U`D?fZVUIF2lf#bMdK1mVNrO%SdJNvCY}_N)yY=^yJGghJxE-<)DV@urFRG*%Ue(#(!h zx{?P-LA{f>?S*^qhq9Z-zTj6T4y^Zo9lUVwMdWa~41h3$i;jaLRUGCE!IXSmOZT4Z zP`bBpdzbG0I87``Piv4eH?5m25}1kg2D0=UQuEgga>ch$^S6%wU-ET-w`lzZC458%~c#(fGJ*Y0AhLpFV(|wjl6W7gQqo)y5Iw!3-HIq| zIC*Y-zP9#PKwBUtFMSQ{L`LN`e=N2+Lr~h01`ZU7x3(?iB|^ycEyM?{hhk>NbdIR? z%;sH8(WM`?K=>6^SwX@YxHI)|*>{yP&PpqC`e4{D&1ZiVnp3a?kmkc_9?i)r$nNOr zt`5gjix}-$(G;WH%uu|KA7Gh6(z9R{EsJBpnhLgDsim~_+XFW-N8 zCzlv$Ws=^*9mB~vnp4JvpJ3715fn=5>yBiYdBiskN;Fc|+t<0(9@!cybSu<7*e15> z?j6c`H<`9;%)(=NxFfUwO|-Jx58D!BZCB7Z*U|*Nz2IwEp41ZAHtcPmWO@+ezju-A z@a+DJTwhzE^bO4my(~p_<_FR>e(bg_O8s=#Ep*y3%LZ@%Le#q#UP2X*tI`x&H=zQX z0Y0oFtVI1KmM~?}b{5hHj@$5bI0+2fnORDL@p`8=^|!q?l?JVgDIKsj^#alPG)vi? z+XD!uk=vwBm8tOQ0qS|8Ox|S5c~q^)N+ehfdKZXW9@bCeezU;oylLhP)C7zR&P4~Pn@y^Hx&gwfi9A7x=!&q0% z7L49B{X7(h?t0iYYJ(NKa!!!8Ujg}Nrf2Kz$IWmCu71!{~J}1HqV7bA^Fx6zC58!MwdqYW@1UGKIJi8%8SxRdrHNf zic-gM1m;~$QPqOm>lsqA7B}{?yI^oP(Eg7 zR1O=iCX;ihflfV+WH;IB1LyM)Ko6W+B`loBa%n@Z^uy&-40KId77L((qTjZX*Jso{ zlO7~>+4q$aeM+(Jof@Eky-(>AQGL>JImy`OHB4U-G>Cy2hA&hQtMaT|1>E6o@Mqf= zNL?L$S7@LR=34+-ua^*$d{ZY%n1Yi;hrUo>m8GS}#+H?=HSN8nZYqgBY%0fDuL+zL ze^1v{YpbL_i0{wW7au@S?7cqV!dh4N;ULP3; z^cm9P%ucD>b}D@kn!l#3y8>jP-!i@!<4#}`hEET6YgA#_PMc5_U(QN zB8q(M6jx!|;t&)_)9j|9H4TOU9n5W{S0G*eY?8mKc{R{7Aq>>fZl%9Jyl30rxh?4G zNMREOpWbcan$dtk<<<_aNAktj&ODjdn*2;|O`Bh>^-jBkxYzu0btUYv*`HdSH4Adh z?1A;^>){e4C!d)g%dZbM`8(?&Ntp(&A{zt!*V$TZils=v!wU_aa@U zZz3GzA-Xnegee0vuBL_UsTW%*WY7xd9nFqL(8dEw_{;DbedR~Hcl*AXmyIaUq#UV~ z5G1nk#?wLPlAr8`QPOc|N!HoT)7)8FV6t*B*dF5E9e@nlTZ%qsG7O1pZW|keRjMzG z$;eS4A&waJ&1$7_5P_zqwXY^~h}CMMr}{KTC~lQC=O^fp3EO*sjh}(B9nQ zvOusS8)(sy(LigEqZ9bqJh8u*?fivW8L&FBL+J*$ODUuTa!|U9a{Y+yC!cvG~LDj&?7(r%ZydfIsUK zq{JPy>w}cI@AfTmfBQ50DRJ+c(oBWf!ob{MKQm2~s5DOtWJq^ng2v68`x;Fpu6#m%Xoh4hJ}ah7Kr|A-^|5R0 z)i!0yZw``i(iykUL|kMzu9|z{^9-H`YUOp{s{&=mR^6QT6Ot*?%%FdZO}4G?3_j>{4oe8%p~bdh~k(#^+ZA<>UT&GC-;JchJxg z0RUW7yBfr{>N(>?JRyHKwvNTiX~~i&Iq-uZU8mEP5&cmD-cSZKzVHf+(e=tno-rh) z_?e5n6B_+_@Od81zQ+Hf4j?0K%U$yA5Ok5+L)n0n$8L$l1phSeFy<-3wL_9|1e-+A zZC`R;GsT3(S)(0?6X|YbRVI=|UjuFEZjr)JnIj15tr+iqR7q#mussVb)g??jfqZ0WPc-C1?HQO+~& z*TT?!AZp%eUR}#epH<`15W4(1ZXAun;~kSHJtm?Z__Ry1AR2}0qZJP3T_|0U5r5iZ z`~*ghE6f1@t+gi<;U*t2wv-8RwV_=(yk6&v5#G!<`47B9okg}#)Fy&f!3pKoxRHq4 z%Q?yHb>qIG`4|9Si~CF`9JG_^J^ES@2=@EgaK`O?8IVw!!lV~aK)GJo)MSQqaNZ}; zm$kIJBx1i0U0qqRyFO=YIDSD5?)JexZTIQC6ZOdE;|OIAYCe5xt@C+s-E4u{2nL0m zF!M8Fi)Et}x_(bcM(m^Lx5Z}@%N>32K18p9ie7D{qSOvh)tY?^#YpkScC!TkwM!gM z2B$2h82T9~9Xd&kDcc$LHx+WxbatpP>PbEw>I{=<%6rG14#Ecn&jNN@KRBL=Gp{H1 zjyN~$XuU4*W3K~d#bIk(tf~%KU0WDVNLk%^jzUOmpqS)Huy;KA$|4x>l6gn2b^@uG zRX3~~)d3u@54_HRIXwt+|0orQ4-`h$b`V-nT_)NI_>SAS?pg?0PAYyq_vycjthX3| z)%?!f8-SDJHuw%sj&o~*RU9Qwj<4BHrLZHtjy&Vwz&5}8#sJ&&ps4+`3<$L|2!xWs3~H-8&|Z62I#1GY)i0w}I-3t$`SQR%T6rw=;K zz>_@~I?b}OXDQ_KHKBc_@C=L6{Oe1@@%>Ve2c9c6rE@I>u7!N3v>ib-epAZ185sJ# z$(3t65b;((2`xbyOroVh!=66tp(mo9mgseke7=^wq=A=N8zTiKV(~c@XPeP4OkYYD zUrxGf3ChHsD^;Xk4KPF&^M*t{zJ#&FIkXLu&v;Oys?1Z*5xK(F04HE&ZSfbv6BGa1#f}l03}_5xd)JK_s&Iu1BRK3p*IqqS<+npk_+@ zjp6q9O0LbPdZp&pe(avsWt=%eBKxeJ3bv79Mzk}59F z!2*uQbHu9a!)2ie;vG(_g~b{P_4$0-z1H5sjDsH$g557yot$1d%c<~ugj@G0cos+= zUfUbBvSU~@;dU?&@+wZ9YzJ9NOl?rfBNyeN|4#>0A??yYjF86t8CXOgMwG z8^4}m5b3(yMp4^tIoRB`mJs8d*fjWdwZZ#X%A@h5JfSo8L&NcnCu_Inmg^POHfY8; z#RaK7ll-LA+^ttWG8``>5AgEFhR83zEzcw52eH|D6i-(q7TR=NJI6#`6N zIVqn)%Gz~hU6}*&Ik7-~*tQEDT2SIc7GMJsKh3@kZWJi3)piwAhg(v3O0a~|+gt!9 z?8A`-y3hpTmObZ@urp=VZRG8x?L8C%oWOs}Naw_z&3GGxFC2L?Z#+8r7HQ2bmW|v0 z?F3hmdjVdeNJJ7R(nYloGQT75Mt_8exZ$!DaZXlnSDF$O&*DaQcK1F8*mUknW&w{lowCtI5akRW|bbOg` z#qmTTFn8jy>GZwDay$kETFynhRbAi$;sA#nmRZ5fF5r=a@3;8~ze-+?d8><1hLCX# z7V_Z$o`|Azoo17Nvf4bqS-RdJxb5O_l#8b0h4e#fKZ+JReca*2cznSXigAS(!HybH z9G!8{3ywEM$D#}FSxOSjTtxT zOVGQghT~`0#0vgBmo9@O*?a8pnb01_))X2r8k?&kX0UG;?dO0RD7UFt_I_ohT-hk? zZZ3|h4A9h36(=YES^~2UE8d#V?*)|*)JE3#hEX# zGtsqdDxN}IHBaEz;+x()ICqFl;p+KFeY)8{X!VVE97mmX&`iO}W+%fw3) z(NWzcmnB4hJv@35Ivj6T3=E`3!9DvxWqm63#*Ki}><;IyqS0t?IG*5zj4PPfZl{qQ z=eoe3*2+%((oXuk_c)rE-=ax_Rc=Yr%My5O8G6=66gvk2H0HE9sL^`m1M=;)-3Y^t zqGP+m(T6$>b;ipj(!hA8&v>lkfKhItj)n}0wA}ETX((zNd_ckfi#trXnp1kmee33M2r_)!W==jxo@Jd7f2w#b#@pJ3tMkyD4 zd^kQ+;XlKl!N~pw8+O;3D1r?6IR7~>|NLa9?Yro=FFghWQJr5D2>F)UuS43pOf^Q+ z5ATvM2kX0C(ccb_&KT}Iu5rM9+Y|cN*jZG`;zUNd#VG!$A!FU-)Klp#)q>sA9Sr`~FEY9`h%NkFj;nyZ4;mIp=qN|IY7^ zRK(ElnXQ@wKM2=^qf8vCsr^mEt3!#NO9+3r|CM!#71RCU08FFh| z8I#DhLf)t%jZq(N@=WAIyH5=T@~F+x?^`X}m^$p@HHK%GZ1&)-gFbX133L&&I@c;- z;p@Azryv3gKr{L5ImUS7CoxmgOm0U&?-0BYw8Ac{fj}u(U;vfBRddECZeMjzcAh%_ zJsaW15?0Ju7v*#94GOl7!K~=&DH+2u0|i>70FA*t2aj7c%m~&17zv=Q7gr(v8@eaU zc&jhfd$=mJu_;BwxVAS;4A@Xx21YD}xGj?9F)IZ##4V>i7YDDse#l zli$0n1KOAc_+yuIMiE5N<`^cj6b0UUpcfR*Gw4$+<;XydQ?Cave!>Ej(1U&FC*uss z{u%65Iwh#z>I~^CjWr5l@eq}p{HQ{K9H1*NQSgqeO{LMMK!JEI|M;K9=Tk;uMAbW7 z8db}sE!2N$$s0QczKqi6u%?sOz!0(=DuXkh3hk}qc1qufwb{flQumGBtQ5+i@gV7_ znG}|hQh{{M*)7P{K+~ce=*wV!VIFh|ERmPmmt^dk+}83-(zb|uG7I`nk098k@*8ji z=M@BgMj)k25X-D$H2sU(A3}uzK%z6VI*25RF*U>cq-K(1TrjH%>pE&av4SgZ{abI! zp5f0->eg{ZEM*5nsZ>hK1*X8ojUjUR=WN8a3<2|YwtkeXU1y2fCd-w@HfeO~_mAgv zDMSdj-4f$Lb-&IXhg>!_Yk&iCp#Li12{86#P5Af4uz<<>9Reu|k94%vQx@{#CB5{c}@c7{dv?H?it)gsX!Y zclq1Wm&`<*4)Wg2&fOBYI8_D_gG3tkA*>X4`7bPC_r4-~6-me2o_@Pqy^ukwZS~fn zB@{EK#+EB@wU(KU%_k`rcMd-=i|&>C2m?;m$Dkq`c)W{GDwSA9+A~0$4ehr&p$)Dj z{ZQjK8!B&cn|LpfA{lKFqX$>Ymx&Nv<5T__(FTPD#DPR-S&6--b`JIhDZr%}Ql?>- zGlovO-&d6Mc{W$ft=22e+TUl7i3y~ARz;VnE2nO6{ls+nIeZ7dbwpaB`NCPYYThMXYEVG3=t2B(yKa4Go@=jzg$3gU7ycyKbyqiWQ1_ zu*k)rhrGB2mYS)oQ?$o#a2tZqk32TTb3Wl=GAW=M#B4sirlTa%z#CL;G_j^ z@q8F=F6P$ZCi?;$#qR05FpcD_o}BTmxk?eqL_FvdyrWCX z=qeLl9S;01a9~}WrX1Lad6JNc`f$^i9GlkbB;lC$MI%(j*|Z%m#&ow~)G(>a;IS{R z3Y(t2A~tQ|w~R28WYnK;Xe(9eS5Zwk|GEX96XP4LCT zXMLM!80Ob9j#(LA#&8I~P*@LFDexO%Ni77{(9UybuC(2~qH0LUE=nPP))#Yt)xt#e zrP|0V+hP^LV>rn+v1nHM<_Q-ORphO$QVm|cFi(JL=p^y!UpZ1jNitu8lEZsqk*jUT zLvl@=t(KstE{bFcKzZE|cvqx~o{$x;yT4VkLo32gc%*;;K8I zkWU(`1oc9sy?Et2-ZS`hSjuqK+hUi6N}GDOyjL-bP;QmcWZu=K+n2w9@4%9`TEJSd zehC+_QjqbR+(yf$E(*G}vw>bS@a>(Rj)bspFTj5E7`H7t4HBKUUx}X?_+(qONlyPq zjV+uLjdtV4e$omNnpWIuee33LQ~Ks5gVp1bs8IBh(>B8(kCEQLUD5Gz{WuCKWGC== z7`CH7Vpq@$OtoFnaU|9wEoBPZf>|s1QK!-5=+KpBkq#^Eh0Fr2q~+E^=63#8wv1KF z9(spA8Cz;KHxC&Jk#^}A*?ysx|MIEV`?z7UGDarkX2eb9ZZ~KRiaR6m#hCc(-eVM^ zvd40)%h=?_9%y!W&YlKrU&{?nB>HQ+$-PWV8uz>GuWW5BmDb};xH(!bY~7owB4DeOr*g#>NUo(&F;fRt_)!V4t#l7 z;rN5Dp={h%c+t12l|VY_PcM zYWLV5fEu<}%5ieZUk-5_!hlMIxwE1Hiz-@Fwi^PhYGm_u+5g%x`j-yfCwb_8c&Pcl z31ERqyiM~TPcg)s2B$ny^bHe9*Vj&yxPk-k z55Qed#WGvkORx^-L+S8%7f4piAaOwa2u z-R{R+I8TAD&4Zl5&l7hyr$DgtnR)R7CM`FF1f~l<3Dw~XhFIY6qJCEu7G%_(m{Xh+ zRCQR_?qv4u;AFN%kZc`-*yQ#v__-3UyJ&8<+MTOyq)Na41(&A$Htw@69BvyA_H}o@ zYhs<3J|d^uKuP0SUcOS{%B<`@hpMW(#8%L##eW3<#_au$g5lK6cc{c zfD`qHu#u3>U}GsB(7QJcfNlBlFW4b2fec}%-(8){ zB7NfQwRNRhD#H;#EJ9#Y=n4)-)p9L_r!;^oHh>2I1alLKFTqdgCcrrS98>QVE47WV zoQ3Bha}&|AVvuC2x>l>qGL~R!l2Q?|_n1x;UJi7Igy2yI<->(0(jH~PbzD?p&Ja(; zKN0=Hg?63KFU)>0)(le;~zx93zaaZHz!`fPn}CG!?-cb~)VCBsz%j-2e%I zqhy%>710Vt5Z{Ys5NAm^>3rRA{0SbfdAUlr@_pnopw6dN_j(rVF7J<;wBfF7 zUE5nfY&@)lSeTZ2TJ!sYpPP$P{!{i>)3`N#s}yAHj^cLW#^G)i%J~CK?*SoNjZ>{J z`)2(qY&sYaJ_D*{Z3LhVRKW!_OrBhk>~V=SS>6&KJ~Ca!ROWpR8#(`(+g8-52zo;Syiq7EsO`wqlGIahaOO?8n;=Z z4_Rqtazhmz!D#yH?$A6T?p$tK4emAemsm6a7s48)jqO6x9q7^;0$aDvy8VVU*pEpc zsQcJ4vgV?n5>BD=6|12UKaDFP$;0M4YQZ^Q8Ezk|yyYYzmPk0Rwx}Xom|rlMoJitR zA0Sg-TePi#*BytJ$L{AxW_+6$34W2-HW8?mU`Kcce6h0!x+G3q({pxf`)fNaoOJ?h zwrX&Zs9vP=IB|}grI;Uztv<3=oV6~cSkahz1pV(qp;W6trFAEhJ7*^1Xca8|hQZh! z+aVV2RpnG^nMEOE`HmJSqQgya&^ZX|w(qo1=z@`lwLFIfyDib(PF!?b+7dhZUl{C| zsmBhjKASl~bGE=+c~rUq3zTThbP%E>?Df){o3yOuuB$Zgi6Drdmb6 zDY0olCxbXDvyn=-CpH?zW1@HD#IA+=6w3mHCe0{9!LEel8&(7{6vY@~EI}lXHGhL? z7~PQ+};RN^yXt5I@+pa=Q&%rs)dZ&{7J|UYF ztCdZe&`IC692}2mzMQ*Q)O3Y0l&K??*v?jc0RlI$?bm`wAG?py;N8Ssf{+s^u>{%= z5IAW~+0nKr-K|SXR?lYpn1Tq#I1I>jb z2yx8K4W5ieUi%^=TtwVVPYi~_e3b%X4Xx9nBKR#$zED(G2hxTRZGe@t0E}jc>9}#G zD`hc|^m5zU4jtDtEKhr&%dfb;y9}_rQ*Z72-VePBVd8BimqAE|rHhO7EVlN*UmUy( zZs*ATrmB}+NG2P_5!){!XZ=pdjIBZ!*XQa!viiZ=0`|Z#97{BGu>(()v)1A1%5k_v z5pGLB8XClXRU&w~$p-YH3?Y)lA%X03G-vEJ$WB%?Snjf!m(yB#v=EL7!4#4v?j~qV zL1s7`hQmR$>*xfWF+;VANI-%}n0F%!MBD9&n}L#P4)zVdb6!p%KxksUuxBOkZuCzh z`vw)O^U!XD#*(~3-$vdm(oAy(j7r8Z=Y;Mg6bOr5SosR4ON)q_5lBH|^AJ64ow2A; z?G$yOg7Jy~-u_0|NNzO=o*pgDVZc~Mb5<}=>`pWsic1+gvPM0H;~WPrx@&C?e1JGW ziT=~X3A2TwF*!KBy?K1eP|UBT?M}A!`nh57fp#=5OAm`Hp=!#gM6PR~YNBeHi%Dog zWhmox=fj`%f?YHE_vOrvDWKict49Br#q|>VLiU;m~`bE_)CN5wxyZi0FoP8 zaoKX7%-ISE#yU?XU95QgVx$Xs?!lTCa2%QvOF2PCsOMLfF^X)$9M{4FOXVT%uQ@}y z%TTS0Ip0wZQcs|^;TvrT!(goorVEf&L9YEB74lB{ST>iI)qTl1|C6IlHQwZz#4A%+S76DnUnsFjE38#Z4Nv52i@vkJuz^Hr9X` z4z3AflxXcXo{OF!OT z)4>(E@r1w<&~^(8qhQNhKn-+cE-aj$$#LuOkBN>82p=V$eLa&|tswyyqHD47C5h;1 z4U7c!WCkfX?+>m{9@K|Bdp1q-u;NM;P6{yON=bvln`B|*xx|o1)brCL@pr;Lf0ExZ zN0Qc!SS-L6GmWGPr&g-*ESt!=#~1l)Mt_~jBLSUI25B9h;KI-3nSU6m>2?;=Jz#;U z^!t<2fsr7!7jN=ICriucWkpY&SP&L~-QZ0aMQWf%EIS$U-!?lisus35F}}}F>cj-@ zxd;Om1vxYtLEU(~%UgnRr3}e9R2ZZQ5s3kITR~Nv5sQj=-C9zZB@L&lVX=+zVP?`@ z#ku?{gd^IR7%;&{X3WhUjT+{*k2iQoKEv0t5k^$9!HsrYCrq>&jPs23sJGn_1eZ7L zpJBEZJEBP%0^+WSAyQS9j7jF}OGrc>JhrphN#~f~4V+(_SbE->2~RNj;{}@l0JxPA zd<`3yTO5aw2Igw1iV$V`F3`AbH=)Vr)?4~1!{u>)PQ*@QYl}l4oWWMMdVjPB@#vI) z%o;D6PdRzmr;=h6FY{b{nMDC_V-Dr@jccCS>19Q9Ln zv@|@QoOXJ?l&0md6lw*8z?JJEK5=b#McgeHy#7;Onfc`BPF zEnR^<;Ah8lmFJ@X;Y)DpebMnctL?39MpuWyzPs~svvckgN;e9=91YtTWrd1c22oj`)SY4*#bLuvvb1C zCVtx1{tIKjn9K8!{hFqD{VC4Q*#e1nvvby^WKeT;Oi^EOnf{$w5T36LvU9dN@NG50-Rzun9EJY{@!fcaB~t{Pb)Oz{8@IGqO6>Mi~W9Y@40)igtWAJ11*J)@SEzv6MfB**ROR#7|dt&K8TX zo1GKIw&K}2TdmUzpHFHxJ11QXgC9nA&Q_az1XRn5-X0-1NSb5?WtTs0@zIa{oee+37AH#?`~=le-ab^F84&e;O% z{uX8DY%#;_q{`jwoK?mcB)u_qoOOOTJLg3hHwsb!8`(gRK!!nMxlO}d#n`@^opU!k zXC`}k@ZkPz^X#0hC>O$(cC&Lz;Gxa!Ks%z%u_qVDk`-|`JE!rGYarvh**W#xHO z<;QL}J10}9<#w7Q_Qx_iXRF=cF5}|%M0qzmrzX1i3C!l&B0J}m;>vDz&fV;sF}Fbz zo^F!x+wlIso!L2C9GTthoGgOC{GOMac`lxvv&G{2yV*HsejKuMw%VR}6!mU)PWAHm z@y^cKYA4%z{p@Dvw3$?t;kD0B{K97EyrK=<&CV&;s6T<(Ij?BDce8U|es<1Q3%#42 zGqanWb2mHZZg$T1cJ|z3axsb&fIOQ;=q@xRBL2KHo=Kb);@ZKKd1-z)J!dRyn{YChuf+>H_Q=V`FpZSjR=W zX36`$Kk%+a9(`m@L;)2J%lte78S?w`&VrS2S>P5whUf$ps1_Zp*>ltqQ7CsL z(Y)`<*Tx^$K*ocMaEwR6lzdVFu|FSb@$-=V8j;?0Uz(o|u}DGPPx}}bj)nF7VQ!=5 zj%M=I(LbAm0U5UzvF*XDnp;m64C}7B4i92W;6bhrhqA#nCId4zv9wubZE72$X@f8i z>LwFu4r%&J%}=phTbB(-cQ^W)z!*Q|3oDYCm_ZrnliP0UgK$u(XyVo^`zxl!EmIar z1Zx#Z#cmwi&BxLarf-2m(&SenC+Zq*uaJwmWXA}eo2WzKIRPCq$AW!7|+E z1;lDFd?qR}j&DV& z&w&kh&{mPd^}K&(ZREVlV8a?D%2GGy_f$&v5qne``F zJ4O!+PJm7>w)P0I*25!7hOsSyaKxs59YqfDrgy#n8&u6wWI9;N-i9i()N~3teRlQa)^r4EcA7^ z)>t|21c-^v!r0gwYo%(qxLGcs0(#3MlqrLZ6;Qxaa>g%%2q`N-Li=HwC2|?*#_UiF zss zIOYJSZpY9?Vz+XaVx2_0buinoTZZZFY`0o0GYI((cT08dj0OGyPKUna_vow8bn%0Bo5 zeSmyO6;jCn4z5w%+AI)3x0nc>#a)C6tK@jr7r7C*s`QfN4^Y(i${fcfK*?0%RszXI zAewp;njxQp=UKl{yii)d5EX9{p&Kt@BLBIWEM`m5H@H#gTtuHt#v`LA1Qy|W^N0GwDY6>J~DvX=xv@ie!!oA zh;=bDb;qm*3hUOPrjElETOI@Y2skH}Zwi=E4r?2kUzcE+~e?lc4;S z`5ezcH9VuF2oA|Iddk;Cb`-9OE^x@gQ~1h=yXQ}_eQhSU#8^ai?=sCgm*)0T8Y za9u_BIHf!W21haG(Tpu7f-}U5<6i&EGpE2IyxVsq0>)x_`TByUp?&k zeNqAKDStRopTZw-STN}KzdmF=7|&m5y0H!4_A(eEhVTB-z5XofeR1t%qc~wKwh~QL zEP%Vku?mkvN{qtMg6Ht6Ow!=9tp!9Z zGeuh>x|r3H8B&)?2MDg);h|97N>2h9h+r^^+DjpLRPH*v)03eh1*hX6Wm18v+1`9l}{J_nc zzX!^o?iNiQxlCmP1>O(1m3BMHIfI5<+Y8B#)nPxRGy*4*dKaY}*%SM-+Y06k;)>&{ zS9*&NTMk#DP$-w=*+6{U4(q3VAjPT&Anei3=0*GBvi&=u(SAp6sY4!_#N`L8>j zy_MX0^?v{8X*q`Dch^R5$-L^&x!b&szUO8lK;`rr%rNE3C__cngE!ZuH0H%zWh1kM zqQ&K{z&otu+450hk27;>6!;3p z+Mvm#QVlmjpaCW#0)@(EvTpKHy%3ZJHVoJ`K;QL4;9v~MNn5&RIp(!*k z$VT-N);Ou$`R?plKj_zO4~x&ZLum;Fn2^p(7lyT|nv&a*B)Pp&cg~6-A`UUpIL}Qb z2c0W~VU3EUic4fTb~9_(om}2-;V<6`6|Z5JA#7xhp{mfj;Z&%@TY`cE5yuL+6^>9? zMs=>`t;{NR4{HA$Yb1wXM5Qaxc5+4mCtq3yfh$(E;1=kn9WMb$JqMX3J-#Boz$Hl5 z$+3(6Hbwq83cE69t-qwBrEliK6U8d3I?Fx>WF2 zm&<5~w2n{S%6%b80-r)POjGNdjK%PInDq)5WUnPgAUh9(yA;ZEh>i^^X0pf6Oie6I z9m;;byAp1Y+Af2HK|g~QrfKQ2r(mZCr#EloWmuy@q2vY6duMdIm=PI2L@W%N6as-@ z2O0B@pi0vM4@KQE!~2%pK(QguOHd~KY#9dSNEL&zs8V^(Fh5y&A>*);o0wr%l>H_Y)RF$d>iS5`PFHJOs~Zb=CYsuUbx22>ODVdsBIUOJ?V2^kp}S+05W6?Z6yFeqm)Y2m)3hAzd>pJeV*;LO3H6klJKg zrV-z|4FW#O@_$Y_=fCEW|f?y~{CenTbMc$dvn;QP+Ss{CR;Uq`KajuA;klH~A zPOwqj1EDOl*>X8oPS;OtIzGglrHnbIYR`22iJn5K$$YGcJ$91yo{8g@EE>DBz<5qJ ziL?M`Vu5H}c$2$3Fk^fO!vYT=VH>1~y;6tukz#h2KT+J`Js9QIXaR7H>!wc`PImws zF4I@>4EHV+FUaHz(3Avd#3W4k3y|k7lyG?`;qEZs)Rgc`$CiwsryA-_56_5C`L@*u3z!a?;O5O$vq~Y`fG>U@N0?3;#6Iq~OYYieUS6AnN z4SuA$RxZ_6*W7x?x{V7r!BA`?QhpnmZEx>k|4g_6mCs-`XfMTkKqbdML0GtYS^-yH zwkQKy&1IBw41qW0Pv}~6ckJ{P9GSViYHMei-GQCP^{`*)fP7e35iPcor~FLPsrCxg zptEX(q&?xz;&dgI&o*=J9PIYzK;qL% zKbOtDSZxzBFpnbENv^_FCBP}jlt3rSIK#vjNU%{MPwe}dkQc<2uXChw8AKaXkCj`_ z5)wnL@goRSrJALkfeRy`MW^GSf+Yw2=9}@t%{P;l^XiR+%Cb64i;s3XWV3Iqk$%I{ z0yG5vZLr4dt-h>E;#J!P-hl$NUP9Mp&=0IASCeKyZl)|A^@L1r1=b@`C9yEmaLSu4gS4T*Im(cqq_HU83+s-6gV*t!!+u3iz+c23hEfTyrq?>Q%kK$V;2SxdSaN4^=2F`IF}K+f zW|-{>HtnV_!U~9zvg=E^<@0vmQ{awhx~|iIGcU5n7byK7FBMk`tGA7fozcsf<9OpX zue`2y^hu)yh{_7DUfvYBEzwy?K~T{HPt9m-;L z3?|Y4LQpwg$S>-}aCxEH^{o>=7K-Z=3vF&+~i*?g)%CKUY(ME zAMEUzOL*;+!;86czS3aC9*Dc_^!ekkR=@}el)w_8GUFqD;v#c~o;%~(SKD_M%saF~ zFM_!)N(J${TeJS~(q^H&^91=1-jVgduh)UWsPAjH?C0@c%{tCq?Vi@NJ$O#VCX1f z02Iln8?~tK&c=5Ru0iB2u;yIIl?zbBK;3fd5ZX99G3yw)omv*JbAxl7sBEpBm|-h8 zW2KAuj1=-xl_j+ua551Q1c$KVJV=s_)d43iEoT9o%13hjEMM1(xVcz|NK3Ja#{s>I zBLXR(VT*1Q>M!u;68;N`T{Xy|`!dp#QZUkT;s7=d2VQ0o^a(1YaTx?8kfPH4L?`-6 znerlahoI+ydF5Go__kp*v6cx`z$U#q47^7sgb6@i$B=U680l?tV9iW|eKnf#&WAla z2cTa*D7QRX9RurUwNtxXB2zffR9sc!stF^V_K*NAaSWO6M~`823c2)p*2+-MBcCQ& zW^CL#5Rsfe$ehNj<%@+%NOfCeetJ0t2thHct|ycaL?E*!A`1l{IAHF=%_(*V$>2it zK1@6Z^kkRKy9PI-SF}r7unm6HVFyWmFpj&f3lQbtl_E5_IdW{X3w!$CJgwbeI;aqc z!;_cUx+D3cTVFFjT?`r@bS}w7qv^vGUSRzYSrG^OHY<3E%t*FYmvAvj6Pqq*9&Es@ zc-`yC1DNVtn=Qe25NH%%Paz_K_tbG$6_V&_$OeZOsl@72mJHXEDFRA^uhYUpXOj@H0oBEzb=OI^3>0*oyNLUEbl z9o_IU^rm8MQ%)e=9O^k+x_|t*zTz0xC6%9?gynYL;OFhW{lZ*c4&iKxdZrXTx><}a zHzA-aN2hKsCk$o`+!j!F*5#jzXgCMdvD$lke7LiBWChM{;Ueu@rE;|&t4<}Of?J1t zZ9N>03plBvm~86z`swsUHRbjC@n+BS`a}$B_`&zQk9PK~8@U`r60$MSAcV``s#1dn z@x1>|Y+$tvQ6g8XmZBF^{xF<>mO^^tLnr%qr+<%;i)U?LC+WyhfoR-wA5fQl$eOVq zR85Eft{XM*t^tbDgSr9_MmSR`XI9hzHc;AeJ9&2`ENibuQa%?PC8&jB&CUlxNWXZK zR37j2$Lrt{H3IjoG(s+7<->BX-&1?lArLsINJVH`i`87^{F9yjQTOEn8lVlpJK-_T zh(pPg+(g`s_$tH%s9-vJHt@c=?ewT);>b~)5FZN&tVW%LN41<^IgM(<0RO6FPMyxo zo<23TFmdLt%*?6dQ>PYY?wFbnWVMKrFgc2WgQwk42lNgDW009xM``=&5bVg1gCoD< zNI2H(&G?8buqR+EtdFX(Cu9ae0h~%oW%K}TM%dplzu&q^@Tvya-NjWX|w;$r{Za6O=h|b~Ju+ zYY11woZRq4-7STvMn=pZ& z54S4*9)FnbfW{>d)XNb#c5SF$M{l>U(^ZnT4!eMCV`($PUTA5D_bPW2^9ge#(xM@4 z0Q!)>lCXGZeIZqD2XcCIPn=#|FTu$uhNw8~a#e!Ohu;}Y{&z=baZZ2Bo`Y0@BmbO{ z*Q~hf%)8XQNiqdQn%vjJl`7W-euHW{fKaj;%+;;V@>*d%-{bd|OQmYuC1Oy1SZuy* z5RaK#MU!4GXW6dtCwL*CDyI^jSRdAF1QdeiKXVboWzQtK|9gig58!_q!}(;~RSio<6~THRJ}J3q&%^``3Q`%Q4$(#|bQCuzn<{?_O`Kl0C9uR{zmh*6E3FNstcI}UM zrutRTO{Erm$d&0{x^_V3?xk}`%6lB%+mN##-;tc%Ae4F_+A*r^_k!kb7;57^xuZTu zX6@7|t^!J^1JC~`B*7ZMfm$SJ6)Q9kDJ6=xd7s!3yqP(3DpLcqxl6ALw@!vd&+pl{ zP@1p8^%E<*?ztZk|N}$I;UZ2dh8NOvaUKqw`bJ%4L+X$UHzY3grM^eadna zXiSQSGtvhj)ZIBhm;$ZfernYE&RTb@;=w;SB<(XEn{Q)=D4{M#Gb(pSz14z%a^KmF5`Bu77xF7-!aXF=l4eo?0dr? z4ilST0JsDKOuc?Dt$-69{++z$+k|Ldjo$#aC8gYs8ntiNOuH6v4B{u3#_;bU6`T6O!ESSh`|kQ<1x@y{+2D(*cT z%%MNRVH|R)xL({sf(Q!^yvX4aMjefv0PRoCQ!Omd6l0@!owjfJjh^D-umY1Jx`kwi zzKoYpZ1h_wL+Joq(j}O4PL--B$mqPT)R*l6i7fnL?p@*UY6Q}-&;^h!~4=v2uaHm^H%gMSK4 z!=65wvalt{cvf<=N8Mdf#PN^3zYGO97=1l#L#t8OF9O&TAjvKVL*p2hUpauI5oCUV z-*tcTEaYa)bH4HKv)hAoC^ zfnU=^3V!UcOsp(81h|zBM$AE-7sovBn$#ogMeJ$VQD7Zy)}|Q z?$ViF(-qCMyDK@<;R(bD;;uBL;W9DJ-f0-~{E>zU_JRZ4J!E`#hyS!_=dJ+rX$Q&||t%X-({x_1i#b~UMNG>P|taUgek)w^$Fm%Q~+Iiu& z2gD1sBu0h&R8{uTe6JS3hziM@@&fq7XOu1yRcWV&E=%;VrVvMd1gjOSd@yvjC~uM2 zfJ@wnbI(=9q& z;Ux8l-TB*E3e;Q7g{sTOe0A1PFD`DP-3su{m`2^Wl> zZ!cgX9XEQ(wM9ap)r9HJQms|4@A8Lap`gX$(etivzM6@bpfa3@VuLv&!&F3 zp8k`Pg)6Z_`{YiP;-=^AZ{E*%9dK#8`$@F*`(Qzk7}hdI7@T)VfqfV<^O+9Up~=No zr^B;TJp)T2Z4=%e_cpe1Bc0Uy;@?6gJira@!G?MVo5P;5QgsaIhTVkW$oUP}xy99) zx(__>aPz@N1ZQV)xG7Gg>pt`QM~t2`kE^HRs(+*l#-%n#PD;@o0oo)!0}s-_jXg6w!xJk)9G8YB5Jcg??A&Mk!L$`AIM%QrqhvF48+aNOqDFSbDeO2!(^SaM| zCc7jSXmI8dBFOM!@c?UfIe?)dYAd<$fryjvUNeNj9!LW_^0%SmVi=62<6F(ZILe|E z3v@+%0G2|$2ofx&l_4y!J-JY|?y)NjBcPmS-Rocw>mhnK2-S;HpM*YU)o=|R;k_ed z47~)<`EV&L79%4TmD|Ze=)E{~*k8a;l~N72BzCdPmy|jxwK6l8$Wq$xd7no?h_(P( zGVn{>gshU?7|%vGZ)xUpp{Z3CxPeXD-WI~3=0OxvM0EU-b>PV$$|*PasqI1 z%W=h3TP6;9Q=CYlL~Ad+BMA_G3W9;QkjYPIu5}=YL3Zs1AE!Hur7BmMSdjt&d==IT zxQ8`B z9iOpT{EQTEZR#UYFB}E|b*8f_R?{ld0zs|9Evp*w=B24G#=dk`6GQM#rX=>EWXdf{ zFiL@&Zqp|ui;DNNsrzk1m|>I>}p`M-rx%%E|2I9w!!;;ziwD~22jdgv^CPK zAlw(f)$vF9v}kFH6NCq$Mrj~{Yih!}r$pHCdV9SYkz>7HZ??sf4b5Pjoh?>x)5S7m zEzHBSe9}0lO<40hY`u-(wUK1J+gpG+9qp{8y^T`Skcvy<5eI*`Hsff{jJrDg^_W4q zHae7v_0SY{?`#VIhq;bFTF~xN5jWQnc6jGx-wPf6UQYh%-{|nd2GE;IW7A17$a_9w z(4-NAqTPcmCUTBa8X~!oVrnWd)ibA#)MF%F_C-oxmNf}iCS4aw4yMDGfRM4U(Ca^g5N_%6niz z(WNP=xsmopWEPXw64#abE3SgI%w7Im$i9tLFD()zj8VcnqCTy(l8{`wuRwC4n73&97Kuv47P+p|#>yI8CXCxjazV5!ik3k?F6I!m27&0L!wF1c zU0Q>qF#FCkWy2OUV@hfeY}O}uuL88790v(OP-cU!dblfa?^`=BM2l-wQ-DCI=^wTP z+62Zy0tqJFx3KZeLyuaAOe3M6R&a&8Wz+|Ogs+UXj7RyP6g0-U+lzCD-N1BOszgbc z!3?~YY;$l1$?r?$`5er3y{QF$W5okXI!Nyj1_Q?mc|c4(>)O;N7tzSsxJ6Nya9X)& z{NA1k7rJ_ejNPiZQoT|Rj3hjQ6<`#OYrs|{Z8l3&6BfE7W;x8|HLlZ+T{d!1Z==~v zGRF$l6YIIv3O!KX*oBMIv_Bfru`?wsv-iekU)H~cd-WN3RpQde_x7Ct>xaeyBTC-{ zLmkntS8LWwoG~ZN+WU+k?r(JsSer$~zqbnvuh~*Yrn7syu*UW(FtS=~b@{eS&)aGP zie##2j2Px6*7f7Jdq{<@*e9k>a8OIIpm+tTiRtod8P73E(YZ|m~# z53j;=9o}y=n|?Fd!>*X$pAQ_Z)lum1-YXkY>v*)wd$bvBM<=Wl z{DK4a{vDwwctQd_=ff&Jos3(-2VtZZEJU;TJAKfiB^pRxFn8~pK*$d_o9xh>Ui~nc zaPM$Lf#Ceo+s{qnA9wN(WY<^@Vf$H|loXk`_VeG;k(q?=KO9d&zZYibY3P@%CJ=Mg z>h%+yLOrqXkbLGk{81y->sSzr`*4}E9NydEUyA+GI5^&fbfJUy`VJ06$26N}g5G|d z^mZ7oq~NS!^#mLzYGshyk2m|U?j?AsER=J+E2CB4AxZ@lH%9$ZULV)9;=yYCc(T`~ zLh;9bvW4PtOZTT3iVx9fPwI%8Pz*nSm;;v)w_UJuz%~U@m@kWKX%(`9N{Fzy7R1d& z4U6zIp_fTQ?oM4Txtn)>lu{an?#Om4;RgU1WUZw7U0K=<=i1D>Z%GA`M_ICZ^j&5k5{BgE6B+#uu!gIrD{+V`a1#ic2r zh0CF$eP*zJJ@*H5`T;+Uo$+f@Rkq;fIkJ<8W0TPl*7U1r-(%nYOzOd?y=4#6(YTg5 zLNZ@7qi$Fmu!B9w)(`1E>rEkI&&vH6u*t`bI?c6hbsD<9s1Br~dM{P=xlR`mg-I;L z@JkZ!CX=fu-%PXl*%U)tW2!=3Z=%`oMuulFGNE%1u@8x(VN%{T=r(=Z=r&dnBF*-$ zOP!R&`qt*Gmp4c4x{4YENzwbc)Pn>&W@#{YH*TT9wu4EB0`9|~S0r?*k;5grap`i2 zqgN1Dx%#(Pxvp=oa?KgN)zWIUWBr1<9dR{97d6)qI3ieFOT8s*BN(@=-ctErR7-

ntvrB!+sjP$3=6 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 literal 677962 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

flp8 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éSG6b0h@zLY3r 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 Mp`|CEDt!6>0g8Dvr2qf` From 646966d68037d28175e78a5ab2db673820149542 Mon Sep 17 00:00:00 2001 From: pgherveou Date: Fri, 7 Feb 2025 10:12:48 +0100 Subject: [PATCH 23/24] Fixes --- ...9f9c1135227c1150f2c5083d1c7c6086b717ada0.json | 12 ------------ ...81a61dae3a284ad4f7979dacb0ccff32cdc39051.json | 12 ++++++++++++ .../0001_create_transaction_hashes.sql | 6 ++++-- .../frame/revive/rpc/src/receipt_extractor.rs | 8 ++++---- .../frame/revive/rpc/src/receipt_provider.rs | 14 ++++++++------ .../revive/rpc/src/receipt_provider/cache.rs | 2 ++ .../frame/revive/rpc/src/receipt_provider/db.rs | 13 ++++--------- .../frame/revive/src/evm/api/rpc_types_gen.rs | 16 ++++++++-------- 8 files changed, 42 insertions(+), 41 deletions(-) delete mode 100644 substrate/frame/revive/rpc/.sqlx/query-027a434a38822c2ba4439e8f9f9c1135227c1150f2c5083d1c7c6086b717ada0.json create mode 100644 substrate/frame/revive/rpc/.sqlx/query-de639fe0ac0c3cfdfbbfa07e81a61dae3a284ad4f7979dacb0ccff32cdc39051.json diff --git a/substrate/frame/revive/rpc/.sqlx/query-027a434a38822c2ba4439e8f9f9c1135227c1150f2c5083d1c7c6086b717ada0.json b/substrate/frame/revive/rpc/.sqlx/query-027a434a38822c2ba4439e8f9f9c1135227c1150f2c5083d1c7c6086b717ada0.json deleted file mode 100644 index 016276144901a..0000000000000 --- a/substrate/frame/revive/rpc/.sqlx/query-027a434a38822c2ba4439e8f9f9c1135227c1150f2c5083d1c7c6086b717ada0.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n\t\t\t\tINSERT INTO transaction_hashes (transaction_hash, block_hash, transaction_index)\n\t\t\t\tVALUES ($1, $2, $3)\n\n\t\t\t\tON CONFLICT(transaction_hash) DO UPDATE SET\n\t\t\t\tblock_hash = EXCLUDED.block_hash,\n\t\t\t\ttransaction_index = EXCLUDED.transaction_index\n\t\t\t\t", - "describe": { - "columns": [], - "parameters": { - "Right": 3 - }, - "nullable": [] - }, - "hash": "027a434a38822c2ba4439e8f9f9c1135227c1150f2c5083d1c7c6086b717ada0" -} diff --git a/substrate/frame/revive/rpc/.sqlx/query-de639fe0ac0c3cfdfbbfa07e81a61dae3a284ad4f7979dacb0ccff32cdc39051.json b/substrate/frame/revive/rpc/.sqlx/query-de639fe0ac0c3cfdfbbfa07e81a61dae3a284ad4f7979dacb0ccff32cdc39051.json new file mode 100644 index 0000000000000..6df5453213956 --- /dev/null +++ b/substrate/frame/revive/rpc/.sqlx/query-de639fe0ac0c3cfdfbbfa07e81a61dae3a284ad4f7979dacb0ccff32cdc39051.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n\t\t\t\tINSERT OR REPLACE INTO transaction_hashes (transaction_hash, block_hash, transaction_index)\n\t\t\t\tVALUES ($1, $2, $3)\n\t\t\t\t", + "describe": { + "columns": [], + "parameters": { + "Right": 3 + }, + "nullable": [] + }, + "hash": "de639fe0ac0c3cfdfbbfa07e81a61dae3a284ad4f7979dacb0ccff32cdc39051" +} diff --git a/substrate/frame/revive/rpc/migrations/0001_create_transaction_hashes.sql b/substrate/frame/revive/rpc/migrations/0001_create_transaction_hashes.sql index 26386c7d4d010..8fd6b353faa82 100644 --- a/substrate/frame/revive/rpc/migrations/0001_create_transaction_hashes.sql +++ b/substrate/frame/revive/rpc/migrations/0001_create_transaction_hashes.sql @@ -1,7 +1,7 @@ -- Useful commands: -- -- Set DATABASE_URL environment variable. --- export DATABASE_URL=sqlite:///$HOME/tx_hashes.db +-- export DATABASE_URL=sqlite:///$HOME/eth_rpc.db -- -- Create DB: -- cargo sqlx database create @@ -17,4 +17,6 @@ CREATE TABLE IF NOT EXISTS transaction_hashes ( block_hash BLOB NOT NULL ); -CREATE INDEX IF NOT EXISTS idx_block_hash ON transaction_hashes (block_hash); +CREATE INDEX IF NOT EXISTS idx_block_hash ON transaction_hashes ( + block_hash +); diff --git a/substrate/frame/revive/rpc/src/receipt_extractor.rs b/substrate/frame/revive/rpc/src/receipt_extractor.rs index e53f98639671c..6338f42ee0cc7 100644 --- a/substrate/frame/revive/rpc/src/receipt_extractor.rs +++ b/substrate/frame/revive/rpc/src/receipt_extractor.rs @@ -93,11 +93,11 @@ impl ReceiptExtractor { address: event.contract, topics: event.topics, data: Some(event.data.into()), - block_number: Some(block_number), + block_number, transaction_hash, - transaction_index: Some(transaction_index.into()), - block_hash: Some(block_hash), - log_index: Some(event_details.index().into()), + transaction_index: transaction_index.into(), + block_hash, + log_index: event_details.index().into(), ..Default::default() }) }) diff --git a/substrate/frame/revive/rpc/src/receipt_provider.rs b/substrate/frame/revive/rpc/src/receipt_provider.rs index f1d76e6cceb8a..bbed54a94b7dc 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider.rs @@ -32,12 +32,10 @@ pub trait ReceiptProvider: Send + Sync { async fn insert(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]); /// Similar to `insert`, but intended for archiving receipts from historical blocks. - /// Cache providers may use the default no-operation implementation. - async fn archive(&self, _block_hash: &H256, _receipts: &[(TransactionSigned, ReceiptInfo)]) {} + async fn archive(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]); /// Deletes receipts associated with the specified block hash. - /// Archive providers can use the default no-operation implementation. - async fn remove(&self, _block_hash: &H256) {} + async fn remove(&self, block_hash: &H256); /// Get the receipt for the given block hash and transaction index. async fn receipt_by_block_hash_and_index( @@ -57,13 +55,17 @@ pub trait ReceiptProvider: Send + Sync { } #[async_trait] -impl ReceiptProvider for (Main, Fallback) { +impl ReceiptProvider for (Cache, Archive) { async fn insert(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]) { join!(self.0.insert(block_hash, receipts), self.1.insert(block_hash, receipts)); } + async fn archive(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]) { + self.1.insert(block_hash, receipts).await; + } + async fn remove(&self, block_hash: &H256) { - join!(self.0.remove(block_hash), self.1.remove(block_hash)); + self.0.remove(block_hash).await; } async fn receipt_by_block_hash_and_index( diff --git a/substrate/frame/revive/rpc/src/receipt_provider/cache.rs b/substrate/frame/revive/rpc/src/receipt_provider/cache.rs index a4741d18a3b34..765c12f890106 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider/cache.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider/cache.rs @@ -35,6 +35,8 @@ impl CacheReceiptProvider { #[async_trait] impl ReceiptProvider for CacheReceiptProvider { + async fn archive(&self, _block_hash: &H256, _receipts: &[(TransactionSigned, ReceiptInfo)]) {} + async fn insert(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]) { let mut cache = self.cache.write().await; cache.insert(block_hash, receipts); diff --git a/substrate/frame/revive/rpc/src/receipt_provider/db.rs b/substrate/frame/revive/rpc/src/receipt_provider/db.rs index 827fadad5b547..42ffe93a9f8b6 100644 --- a/substrate/frame/revive/rpc/src/receipt_provider/db.rs +++ b/substrate/frame/revive/rpc/src/receipt_provider/db.rs @@ -68,6 +68,8 @@ impl DBReceiptProvider { #[async_trait] impl ReceiptProvider for DBReceiptProvider { + async fn remove(&self, _block_hash: &H256) {} + async fn archive(&self, block_hash: &H256, receipts: &[(TransactionSigned, ReceiptInfo)]) { self.insert(block_hash, receipts).await; } @@ -80,12 +82,8 @@ impl ReceiptProvider for DBReceiptProvider { let result = query!( r#" - INSERT INTO transaction_hashes (transaction_hash, block_hash, transaction_index) + INSERT OR REPLACE INTO transaction_hashes (transaction_hash, block_hash, transaction_index) VALUES ($1, $2, $3) - - ON CONFLICT(transaction_hash) DO UPDATE SET - block_hash = EXCLUDED.block_hash, - transaction_index = EXCLUDED.transaction_index "#, transaction_hash, block_hash, @@ -95,10 +93,7 @@ impl ReceiptProvider for DBReceiptProvider { .await; if let Err(err) = result { - log::error!( - "Error inserting transaction for block hash {block_hash:?}: {:?}", - err - ); + log::error!("Error inserting transaction for block hash {block_hash:?}: {err:?}"); } } } diff --git a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs index 5d31613ca314b..e7003ee7c1891 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -377,17 +377,17 @@ pub struct Log { /// address pub address: Address, /// block hash - #[serde(rename = "blockHash", skip_serializing_if = "Option::is_none")] - pub block_hash: Option, + #[serde(rename = "blockHash")] + pub block_hash: H256, /// block number - #[serde(rename = "blockNumber", skip_serializing_if = "Option::is_none")] - pub block_number: Option, + #[serde(rename = "blockNumber")] + pub block_number: U256, /// data #[serde(skip_serializing_if = "Option::is_none")] pub data: Option, /// log index - #[serde(rename = "logIndex", skip_serializing_if = "Option::is_none")] - pub log_index: Option, + #[serde(rename = "logIndex")] + pub log_index: U256, /// removed #[serde(skip_serializing_if = "Option::is_none")] pub removed: Option, @@ -398,8 +398,8 @@ pub struct Log { #[serde(rename = "transactionHash")] pub transaction_hash: H256, /// transaction index - #[serde(rename = "transactionIndex", skip_serializing_if = "Option::is_none")] - pub transaction_index: Option, + #[serde(rename = "transactionIndex")] + pub transaction_index: U256, } /// Syncing progress From 3248fb9d55f504a4aad7fd9bb1b6a17ee47b47aa Mon Sep 17 00:00:00 2001 From: pgherveou Date: Fri, 7 Feb 2025 15:13:12 +0100 Subject: [PATCH 24/24] fix some js files --- .../revive/rpc/examples/js/.prettierrc.json | 8 +- .../rpc/examples/js/contracts/.solhint.json | 2 +- .../frame/revive/rpc/examples/js/package.json | 3 +- .../rpc/examples/js/src/geth-diff.test.ts | 105 ++++++++++-------- .../revive/rpc/examples/js/src/spammer.ts | 8 +- .../frame/revive/rpc/examples/js/src/util.ts | 6 +- 6 files changed, 70 insertions(+), 62 deletions(-) diff --git a/substrate/frame/revive/rpc/examples/js/.prettierrc.json b/substrate/frame/revive/rpc/examples/js/.prettierrc.json index e74ed9ff35785..123daf08ec5d7 100644 --- a/substrate/frame/revive/rpc/examples/js/.prettierrc.json +++ b/substrate/frame/revive/rpc/examples/js/.prettierrc.json @@ -1,6 +1,6 @@ { - "trailingComma": "es5", - "tabWidth": 4, - "semi": false, - "singleQuote": true + "trailingComma": "es5", + "tabWidth": 4, + "semi": false, + "singleQuote": true } diff --git a/substrate/frame/revive/rpc/examples/js/contracts/.solhint.json b/substrate/frame/revive/rpc/examples/js/contracts/.solhint.json index ce2220e0b7560..2614a969da39b 100644 --- a/substrate/frame/revive/rpc/examples/js/contracts/.solhint.json +++ b/substrate/frame/revive/rpc/examples/js/contracts/.solhint.json @@ -1,3 +1,3 @@ { - "extends": "solhint:recommended" + "extends": "solhint:recommended" } diff --git a/substrate/frame/revive/rpc/examples/js/package.json b/substrate/frame/revive/rpc/examples/js/package.json index f2c4b8d780932..e181461cf8615 100644 --- a/substrate/frame/revive/rpc/examples/js/package.json +++ b/substrate/frame/revive/rpc/examples/js/package.json @@ -6,7 +6,8 @@ "scripts": { "dev": "vite", "build": "tsc && vite build", - "preview": "vite preview" + "preview": "vite preview", + "prettier": "prettier --write ." }, "dependencies": { "@parity/revive": "^0.0.9", diff --git a/substrate/frame/revive/rpc/examples/js/src/geth-diff.test.ts b/substrate/frame/revive/rpc/examples/js/src/geth-diff.test.ts index 2a4ff2edcdf52..51bbad3c17966 100644 --- a/substrate/frame/revive/rpc/examples/js/src/geth-diff.test.ts +++ b/substrate/frame/revive/rpc/examples/js/src/geth-diff.test.ts @@ -6,16 +6,16 @@ import { waitForHealth, polkadotSdkPath, } from './util.ts' -import { afterAll, afterEach, beforeAll, describe, expect, test } from 'bun:test' -import { encodeFunctionData, Hex, parseEther } from 'viem' +import { afterAll, afterEach, describe, expect, test } from 'bun:test' +import { encodeFunctionData, Hex, parseEther, decodeEventLog, keccak256, toHex } from 'viem' import { ErrorsAbi } from '../abi/Errors' -import { FlipperCallerAbi } from '../abi/FlipperCaller' -import { FlipperAbi } from '../abi/Flipper' +import { EventExampleAbi } from '../abi/EventExample' import { Subprocess, spawn } from 'bun' import { fail } from 'node:assert' const procs: Subprocess[] = [] -if (!process.env.USE_LIVE_SERVERS) { +if (process.env.START_GETH) { + process.env.USE_ETH_RPC = 'true' procs.push( // Run geth on port 8546 await (async () => { @@ -30,7 +30,12 @@ if (!process.env.USE_LIVE_SERVERS) { await waitForHealth('http://localhost:8546').catch() return proc - })(), + })() + ) +} + +if (process.env.START_SUBSTRATE_NODE) { + procs.push( //Run the substate node (() => { killProcessOnPort(9944) @@ -42,13 +47,19 @@ if (!process.env.USE_LIVE_SERVERS) { '-l=error,evm=debug,sc_rpc_server=info,runtime::revive=debug', ], { - stdout: Bun.file('/tmp/kitchensink.out.log'), - stderr: Bun.file('/tmp/kitchensink.err.log'), + stdout: Bun.file('/tmp/substrate-node.out.log'), + stderr: Bun.file('/tmp/substrate-node.err.log'), cwd: polkadotSdkPath, } ) - })(), - // Run eth-rpc on 8545 + })() + ) +} + +if (process.env.START_ETH_RPC) { + process.env.USE_ETH_RPC = 'true' + // Run eth-rpc on 8545 + procs.push( await (async () => { killProcessOnPort(8545) console.log('Starting eth-rpc') @@ -79,53 +90,49 @@ afterAll(async () => { procs.forEach((proc) => proc.kill()) }) -const envs = await Promise.all([createEnv('geth'), createEnv('kitchensink')]) +const envs = await Promise.all([ + ...(process.env.USE_GETH ? [createEnv('geth')] : []), + ...(process.env.USE_ETH_RPC ? [createEnv('eth-rpc')] : []), +]) for (const env of envs) { describe(env.serverWallet.chain.name, () => { - let errorsAddr: Hex = '0x' - let flipperAddr: Hex = '0x' - let flipperCallerAddr: Hex = '0x' - beforeAll(async () => { - { + const getErrorTesterAddr = (() => { + let contractAddress: Hex = '0x' + return async () => { + if (contractAddress !== '0x') { + return contractAddress + } const hash = await env.serverWallet.deployContract({ abi: ErrorsAbi, bytecode: getByteCode('Errors', env.evm), }) const deployReceipt = await env.serverWallet.waitForTransactionReceipt({ hash }) - if (!deployReceipt.contractAddress) - throw new Error('Contract address should be set') - errorsAddr = deployReceipt.contractAddress - } - - { - const hash = await env.serverWallet.deployContract({ - abi: FlipperAbi, - bytecode: getByteCode('Flipper', env.evm), - }) - const deployReceipt = await env.serverWallet.waitForTransactionReceipt({ hash }) - if (!deployReceipt.contractAddress) - throw new Error('Contract address should be set') - flipperAddr = deployReceipt.contractAddress + contractAddress = deployReceipt.contractAddress! + return contractAddress } + })() - { + const getEventExampleAddr = (() => { + let contractAddress: Hex = '0x' + return async () => { + if (contractAddress !== '0x') { + return contractAddress + } const hash = await env.serverWallet.deployContract({ - abi: FlipperCallerAbi, - args: [flipperAddr], - bytecode: getByteCode('FlipperCaller', env.evm), + abi: EventExampleAbi, + bytecode: getByteCode('EventExample', env.evm), }) const deployReceipt = await env.serverWallet.waitForTransactionReceipt({ hash }) - if (!deployReceipt.contractAddress) - throw new Error('Contract address should be set') - flipperCallerAddr = deployReceipt.contractAddress + contractAddress = deployReceipt.contractAddress! + return contractAddress } - }) + })() test('triggerAssertError', async () => { try { await env.accountWallet.readContract({ - address: errorsAddr, + address: await getErrorTesterAddr(), abi: ErrorsAbi, functionName: 'triggerAssertError', }) @@ -143,7 +150,7 @@ for (const env of envs) { test('triggerRevertError', async () => { try { await env.accountWallet.readContract({ - address: errorsAddr, + address: await getErrorTesterAddr(), abi: ErrorsAbi, functionName: 'triggerRevertError', }) @@ -161,7 +168,7 @@ for (const env of envs) { test('triggerDivisionByZero', async () => { try { await env.accountWallet.readContract({ - address: errorsAddr, + address: await getErrorTesterAddr(), abi: ErrorsAbi, functionName: 'triggerDivisionByZero', }) @@ -181,7 +188,7 @@ for (const env of envs) { test('triggerOutOfBoundsError', async () => { try { await env.accountWallet.readContract({ - address: errorsAddr, + address: await getErrorTesterAddr(), abi: ErrorsAbi, functionName: 'triggerOutOfBoundsError', }) @@ -201,7 +208,7 @@ for (const env of envs) { test('triggerCustomError', async () => { try { await env.accountWallet.readContract({ - address: errorsAddr, + address: await getErrorTesterAddr(), abi: ErrorsAbi, functionName: 'triggerCustomError', }) @@ -219,7 +226,7 @@ for (const env of envs) { test('eth_call (not enough funds)', async () => { try { await env.emptyWallet.simulateContract({ - address: errorsAddr, + address: await getErrorTesterAddr(), abi: ErrorsAbi, functionName: 'valueMatch', value: parseEther('10'), @@ -255,7 +262,7 @@ for (const env of envs) { test('eth_estimate (not enough funds)', async () => { try { await env.emptyWallet.estimateContractGas({ - address: errorsAddr, + address: await getErrorTesterAddr(), abi: ErrorsAbi, functionName: 'valueMatch', value: parseEther('10'), @@ -273,7 +280,7 @@ for (const env of envs) { test('eth_estimate call caller (not enough funds)', async () => { try { await env.emptyWallet.estimateContractGas({ - address: errorsAddr, + address: await getErrorTesterAddr(), abi: ErrorsAbi, functionName: 'valueMatch', value: parseEther('10'), @@ -291,7 +298,7 @@ for (const env of envs) { test('eth_estimate (revert)', async () => { try { await env.serverWallet.estimateContractGas({ - address: errorsAddr, + address: await getErrorTesterAddr(), abi: ErrorsAbi, functionName: 'valueMatch', value: parseEther('11'), @@ -322,7 +329,7 @@ for (const env of envs) { expect(balance).toBe(0n) try { await env.emptyWallet.estimateContractGas({ - address: errorsAddr, + address: await getErrorTesterAddr(), abi: ErrorsAbi, functionName: 'setState', args: [true], @@ -352,7 +359,7 @@ for (const env of envs) { { data, from: env.emptyWallet.account.address, - to: errorsAddr, + to: await getErrorTesterAddr(), }, ], }) diff --git a/substrate/frame/revive/rpc/examples/js/src/spammer.ts b/substrate/frame/revive/rpc/examples/js/src/spammer.ts index c038afa71f0aa..29bdf20d935c7 100644 --- a/substrate/frame/revive/rpc/examples/js/src/spammer.ts +++ b/substrate/frame/revive/rpc/examples/js/src/spammer.ts @@ -11,7 +11,7 @@ import { import { FlipperAbi } from '../abi/Flipper' //Run the substate node -console.log('🚀 Start kitchensink...') +console.log('🚀 Start substrate-node...') killProcessOnPort(9944) spawn( [ @@ -20,8 +20,8 @@ spawn( '-l=error,evm=debug,sc_rpc_server=info,runtime::revive=debug', ], { - stdout: Bun.file('/tmp/kitchensink.out.log'), - stderr: Bun.file('/tmp/kitchensink.err.log'), + stdout: Bun.file('/tmp/substrate-node.out.log'), + stderr: Bun.file('/tmp/substrate-node.err.log'), cwd: polkadotSdkPath, } ) @@ -60,7 +60,7 @@ spawn( ) await waitForHealth('http://localhost:8545').catch() -const env = await createEnv('kitchensink') +const env = await createEnv('eth-rpc') const wallet = env.accountWallet console.log('🚀 Deploy flipper...') diff --git a/substrate/frame/revive/rpc/examples/js/src/util.ts b/substrate/frame/revive/rpc/examples/js/src/util.ts index 2991bdfe6367b..3a488da67d801 100644 --- a/substrate/frame/revive/rpc/examples/js/src/util.ts +++ b/substrate/frame/revive/rpc/examples/js/src/util.ts @@ -35,10 +35,10 @@ export function killProcessOnPort(port: number) { } export let jsonRpcErrors: JsonRpcError[] = [] -export async function createEnv(name: 'geth' | 'kitchensink') { +export async function createEnv(name: 'geth' | 'eth-rpc') { const gethPort = process.env.GETH_PORT || '8546' - const kitchensinkPort = process.env.KITCHENSINK_PORT || '8545' - const url = `http://localhost:${name == 'geth' ? gethPort : kitchensinkPort}` + const ethRpcPort = process.env.ETH_RPC_PORT || '8545' + const url = `http://localhost:${name == 'geth' ? gethPort : ethRpcPort}` const chain = defineChain({ id: name == 'geth' ? 1337 : 420420420, name,